的十六进制值0x40130020是 的浮点值2.296883,使用此站点http://gregstoll.dyndns.org/~gregstoll/floattohex/。这如何实现到 Lua?如果我使用:
x = 0x40130020
print(x)
Run Code Online (Sandbox Code Playgroud)
那么结果1074987040当然是打印出来的......我该怎么办?谢谢
你可以在 Lua 5.3 中轻松做到这一点:
x=0x40130020
s=string.pack("i4",x)
f=string.unpack("f",s)
print(f)
Run Code Online (Sandbox Code Playgroud)
string.pack是string.unpackLua 5.3 中的新增内容。
在以前的版本中,您需要一个用 C 编写的外部库或深入了解 IEEE 浮点表示的内部结构(这并不太难)。例如参见这个问题。