Lua添加错误

标签 lua integer 64-bit addition zerobrane

在处理大数字(64 位值)时,Lua 加法似乎不起作用。我尝试计算以下内容:

71776119061217280 + 281474976710655

或十六进制

  0x00FFFFFFFFFFFF‬
+ 0x‭FF000000000000

Lua 5.15.25.3全部回归

72057594037927936 (= 0x‭100000000000000)

不用拿出计算器就能知道这是错误的。偶数与奇数相加不是偶数。事实上,它似乎偏离了1(正确的结果是72057594037927935)。在十六进制中,问题更加明显,因为结果应该是0xFFFFFFFFFFFFFF。 有人知道发生了什么事,或者我在这里做错了什么?

更新:

有关信息,我在 ZeroBrane Studio 上看到了这一点在 Windows 10 上。

最佳答案

Lua 5.3的什么颠覆?在 Linux (amd64) 机器上,我得到:

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

关于Lua添加错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49098445/

相关文章:

types - 从C查询Lua用户数据类型

ssl - OpenResty 在自动生成的证书中禁用 TLS 1.0 和 TLS 1.1

c# - 有很多枚举值有什么坏处吗? (许多 >= 1000)

java - Integer.parseInt(scanner.nextLine()) 与 scanner.nextInt()

eclipse - Windows 上的 javahl subclipse 64 位安装

lua - 如何从一行日志文件中获取特定信息

java - 让用户在扫描仪Java中仅输入整数

java - JRE/JDK/Java 9 的 64 位插件与 IE 11 64 位不兼容

windows-7 - Windows 7 64 位上的 Sybase ASE 15.x ODBC 驱动程序

c++ - 如何替换 Lua 默认错误打印?