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