2011-03-17 95 views
0

如何转换用户数据是这样的:如何将userdata转换为uint32或float?

local user_data = { 0x33, 0x22, 0x11, 0x00 } 

到任何一个UINT32或浮动使用Lua?我无法在文档中找到任何有关此问题的内容。

我已经试过各种方法和这些都没有工作:

local data_uint32 = tonumber(user_data) 
local data_uint32 = user_data:uint32() 
local data_uint32 = uint32(user_data) 

回答

4

我宁愿定义自己的功能:

function toUInt32(user_data) 
    return user_data[1] * 0x1000000 
     + user_data[2] * 0x10000 
     + user_data[3] * 0x100 
     + user_data[4] 
end 
print(toUInt32(user_data)) 

不知道任何预定义的库函数做这个。

注意:您可能要考虑数字的字节顺序。