Lua - 在 32 位 lua 编译器上处理 64 位数字

Lua - Handling 64 bits number on 32 bit lua compiler

目前我正在尝试解码数据(使用lua)。我的数据是 64 位十六进制(大端)。

该特定数字需要转换为小端。除此之外,其他的位运算稍后会根据内部逻辑应用。

现在,最初我认为事情会很简单,因为我可以使用 bitop 并简单地应用我想要的任何按位运算。

现在,不幸的是,我有(并且请注意我无法更改此),32 位 lua 编译器,因此,我不能简单地使用这些操作。

有2个问题想请教:

在问这个问题之前,我找到并阅读了同一主题的其他参考资料,但它们都与特定案例更相关(除非您熟悉该主题,否则很难理解):

  1. lua 64-bit transitioning issue
  2. Lua是否利用 64 位整数?
  3. 判断Lua编译器是否运行32或 64 位
  4. 使用 32 位按位比较带符号的 64 位数字 Lua
  5. 中的操作

在对该主题进行更详细的调查、测试和与其他人交流后,将其意见与该主题相关,发布答案:

在这种特定情况下,您拥有 32 位还是 64 位编译器(或设备)并不重要。 The largest integer you are able to represent based on lua doc: 64-bit floats can only represent integers up to 53 bits of precision, 以及我用作例子比那个大。

这意味着任何类型的通用位运算都不适用于这些数字。

基本上,这个问题可以重构为:“如何在完整的 64 位上使用 lua 中的位运算?”。

唯一的解决办法是为此使用库或自己实现(将 64 位数字分成两个 32 位数字并自己实现位运算符)