Windows CMD和Bash中的长算法

时间:2013-01-22 19:35:50

标签: windows bash cmd

有没有办法用长(非常)整数进行算术运算?如何添加它们并获得它们的平方?我可以在Windows CMD和Bash上执行此操作吗?谢谢!

4 个答案:

答案 0 :(得分:1)

在bash中,您可以使用 bc 。这里链接http://www.gnu.org/software/bc/manual/html_mono/bc.html

对于我的版本(bc 1.06.95):

1)字符串中字符数的限制(在表达式中):2147483647
2)指数值的限制:2147483647

例如:

echo "2^2" | bc - 计算功率2中的2

答案 1 :(得分:1)

Windows CMD具有以下限制

  

批处理数学存在严重限制:它只能处理32位整数。   (-2,147,483,648至+2,147,483,647)

     

在Windows NT 4和2000中,限制更严重:它只能处理无符号的32位整数。   (0至4,294,967,295)

Source: http://www.robvanderwoude.com/battech_math.php

但是,请参阅上面该来源中的解决方法部分!

答案 2 :(得分:0)

假设CMD 是命令行和Windows最新版本(Win 7+,可选&可能安装在XP上)的总称,powershell最容易使用。为了得到平方,你可以这样做:
powershell [math]::sqrt(2+2)

Powershell将自动为您调整数据类型,对于非常大的数字,它将自动使用int64或Decimal(int128)。您可以尝试使用不同的值来查看它: powershell (your_value_here).gettype().name

答案 3 :(得分:0)

我总是使用scala,但它可能有点过分。如果您只想评估一个表达式,而是保持其REPL模式,那么它有点慢:

$ scala -e 'println (BigInt("12345056560232232323232323").pow(17))'
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203

或者pari:

$ echo "12345056560232232323232323^17" | gp -q
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203