Lua添加错误

时间:2018-03-04 17:50:46

标签: lua integer 64-bit addition zerobrane

在处理大数字(64位值)时,Lua似乎无法正常工作。我试图计算以下内容:

71776119061217280 + 281474976710655

或在hexa

  0x00FFFFFFFFFFFF‬
+ 0x‭FF000000000000

Lua 5.1 5.2 5.3 全部返回

72057594037927936 (= 0x‭100000000000000)

无需拿出计算器就可以看出这是错误的。添加到奇数的偶数不是偶数。事实上,它似乎偏离1(正确的结果是 72057594037927935 )。在hexa中,问题更加明显,因为结果应该是 0xFFFFFFFFFFFFFF 。 任何人都知道发生了什么,或者我在这里做错了什么?

更新

有关信息,我在Windows 10上看到ZeroBrane Studio

1 个答案:

答案 0 :(得分:2)

什么颠覆Lua 5.3?就像在linux(amd64)机器上一样,我得到:

$ lua
Lua 5.3.4  Copyright (C) 1994-2017 Lua.org, PUC-Rio
> 71776119061217280 + 281474976710655
72057594037927935
>