Lua - 十六进制转浮点数

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

x = 0x40130020
print(x)

则会打印出结果 1074987040,当然......我应该怎么做?谢谢。

点赞
用户107090
用户107090

你可以在 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 浮点数的表示(这并不太难)。例如,查看这个问题

2015-04-12 20:29:46