Lua - 十六进制浮动

Lua - Hex to float

0x40130020 的十六进制值是 2.296883 的浮点值,使用此站点 http://gregstoll.dyndns.org/~gregstoll/floattohex/。如何实现 Lua?如果我使用:

x = 0x40130020
print(x)

然后结果1074987040当然打印出来了……我该怎么办?谢谢

您可以在 Lua 5.3 中轻松做到这一点:

x=0x40130020
s=string.pack("i4",x)
f=string.unpack("f",s)
print(f)

string.packstring.unpack 是 Lua 5.3 中的新内容。

在以前的版本中,您将需要一个用 C 编写的外部库或深入了解 IEEE 浮点表示的内部结构(这并不难)。例如参见 [​​=13=].