标签: linux bash
我写了一个简单的bash脚本来计算2 ^ 63,但结果返回-9223372036854775808!它可以正确计算2 ^ 60。任何人都可以解释为什么会这样吗?
答案 0 :(得分:4)
您系统上的Bash使用64位有符号整数,因此最大正值为2 ^ 63-1。
2 ^ 63缠绕到负值并表示-2 ^ 63的最小(最大负值)。
请注意,在其他系统上,Bash可能不使用64位整数,man bash仅表示"评估是在固定宽度的整数中完成的,没有检查溢出"。
man bash