有没有办法用长(非常)整数进行算术运算?如何添加它们并获得它们的平方?我可以在 Windows CMD 和 Bash 上执行此操作吗?谢谢!
4 回答
在 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
Windows CMD 有以下限制
批处理数学有一个严重的限制:它只能处理 32 位整数。(-2,147,483,648 至 +2,147,483,647)
在 Windows NT 4 和可能的 2000 中,限制更加严重:它只能处理无符号的 32 位整数。(0 至 4,294,967,295)
资料来源:http://www.robvanderwoude.com/battech_math.php
但是,请参阅上面该来源中的解决方法部分!
我总是为此使用 scala,但这可能有点矫枉过正。如果您只想评估一个表达式,而不是停留在其 REPL 模式,它会有点慢:
$ scala -e 'println (BigInt("12345056560232232323232323").pow(17))'
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203
或帕里:
$ echo "12345056560232232323232323^17" | gp -q
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203
假设 CMD是命令行和最新版本的 Windows(Win 7+,可选并且可能安装在 XP 上)的总称,powershell
最容易使用。要获得平方和,您可以这样做:
powershell [math]::sqrt(2+2)
Powershell 会自动为您调整数据类型,对于非常大的数字,它将自动使用 int64 或 Decimal (int128)。您可以尝试使用不同的值来查看它:
powershell (your_value_here).gettype().name