2011-03-17 129 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)) 

不知道任何預定義的庫函數做這個。

注意:您可能要考慮數字的字節順序。