将 Lua 配置为浮点数会对整数做出什么影响?

Lua有一个很酷的功能,就是可以让它使用浮点数而不是双精度浮点数。在luaconf.h中有一个LUA_NUMBER。这对我非常有用!

但我一直想知道Lua如何处理整数。在JavaScript和AS3中,我知道整数也只是“数字”。如果数字始终是具有53位尾数数字的双精度浮点数,那么这样做非常好,因为32位整数的期望得到了很好的覆盖。现在,如果使用具有23位尾数数字的浮点数,就不能再按预期工作了。代码通常将整数视为32位,用于位运算或类似于32位颜色打包的操作。

所以我的问题是,如果使用“#define LUA_NUMBER float”进行构建,我的整数限制是否为23位?答案是否更加复杂?如果是,为什么以及如何?我从未使用过luajit,但其他lua实现如何处理此问题?

我知道我可以阅读代码,但这是一个有趣的问题。而且我很懒:)对于我的用例,我可以假设23位。

点赞
用户107090
用户107090

是的,整数的大小是有限制的。因此,如果你使用浮点数,你将得到24位的整数(浮点表示中有一个隐藏的位)。

2013-06-18 15:07:16