为什么bash返回negetive数字而不是2 ^ 64?

时间:2018-01-04 13:06:31

标签: linux bash

我写了一个简单的bash脚本来计算2 ^ 63,但结果返回-9223372036854775808!它可以正确计算2 ^ 60。任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

您系统上的Bash使用64位有符号整数,因此最大正值为2 ^ 63-1。

2 ^ 63缠绕到负值并表示-2 ^ 63的最小(最大负值)。

请注意,在其他系统上,Bash可能不使用64位整数,man bash仅表示"评估是在固定宽度的整数中完成的,没有检查溢出"。