在处理大数字(64 位值)时,Lua 加法似乎不起作用。我试图计算以下内容:
71776119061217280 + 281474976710655
或六边形
0x00FFFFFFFFFFFF
+ 0xFF000000000000
Lua 5.1、5.2和5.3都返回
72057594037927936 (= 0x100000000000000)
无需拿出你的计算器来看看这是错误的。偶数加上奇数不是偶数。事实上,它似乎偏离了 1(正确的结果是72057594037927935)。在六进制中,问题更加明显,因为结果应该是0xFFFFFFFFFFFFFF。任何人都知道发生了什么,或者我在这里会做错什么?
更新:
有关信息,我在 Windows 10 上使用ZeroBrane Studio看到了这一点。