Lua - 十六进制浮动

dar*_*onz 5 lua hex

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

x = 0x40130020
print(x)
Run Code Online (Sandbox Code Playgroud)

那么结果1074987040当然是打印出来的......我该怎么办?谢谢

lhf*_*lhf 5

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

x=0x40130020
s=string.pack("i4",x)
f=string.unpack("f",s)
print(f)
Run Code Online (Sandbox Code Playgroud)

string.packstring.unpackLua 5.3 中的新增内容。

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