4
十六進制數值0x40130020
的浮點數爲2.296883
,使用本網站http://gregstoll.dyndns.org/~gregstoll/floattohex/。這對Lua來說如何實現?如果我使用:Lua - 十六進制浮點數
x = 0x40130020
print(x)
然後結果1074987040
打印當然...我該怎麼辦?由於
十六進制數值0x40130020
的浮點數爲2.296883
,使用本網站http://gregstoll.dyndns.org/~gregstoll/floattohex/。這對Lua來說如何實現?如果我使用:Lua - 十六進制浮點數
x = 0x40130020
print(x)
然後結果1074987040
打印當然...我該怎麼辦?由於
你可以做到這一點很容易在Lua 5.3:
x=0x40130020
s=string.pack("i4",x)
f=string.unpack("f",s)
print(f)
string.pack
和string.unpack
在Lua 5.3是新的。
在以前的版本中,您需要一個用C語言編寫的外部庫,或者深入到IEEE浮點表示的內部(這不是太難)。例如參見this question。
在舊版本比5.3? = | – darkchampionz
@darkchampionz,看我編輯的答案。 – lhf