我有能力用Lua讀取內存,但遇到了問題。 我想讀取一個浮點值。在Lua中將字節數組轉換爲浮點數[Float Data Structure]
我有,我認爲是一個浮動,在內存中看起來像這樣。
Byte Array 65 B6 40 43 EC 35 87 41 51 04 9E 3F
Float Value 192.712478637695
我知道float值,因爲我使用的是內存編輯器。 在Lua中我有一個類似於memcpy的函數,它叫做readmem(Address,bytes)它返回一個整數值。
我該如何將字節數組讀取到使用readmem的Lua中的float中。
對於這個問題的緣故,我想你可以假設,在65 6的地址00000000
我相信你可以完成任務而不用在C中添加一個函數來轉換它,儘管我意識到這是簡單的出路。我敢肯定,如果我更好地理解float數據結構如何工作,我可以形成一個字符串,然後將其轉換爲Lua中的float。 由於我有能力直接讀取內存,我真的沒有看到什麼阻止我將一個浮動補丁一起。 這是一個懶惰的答案我不能投票下來,因爲我的代表不夠高。 – Nowayz 2010-07-05 09:53:04
@Nowayz:理論上,這是可能的。但是,實際上,你會對浮點數據結構做出許多假設。另外,你只能將它轉換爲一個數字,這是一個雙精度值,而不是浮點數。另外,你的字節數組不是一個浮點數。浮點數是32位或4字節。你有12個字節。這只是你想要做的錯誤的一個例子。如果你有C中的地址,那麼你可以執行一個指針轉換來獲得原始表示,但它仍然是錯誤的。 – Puppy 2010-07-05 10:04:48