我有能力用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