如何将用户数据转换为uint32或浮点数?

我该如何将这样的用户数据转换为 uint32 或 float?

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

使用 Lua 该如何转换?我在文档中找不到相关内容。

我尝试了各种方法,但都没有成功:

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

原文链接 https://stackoverflow.com/questions/5343598

点赞
stackoverflow用户656366
stackoverflow用户656366

我宁愿定义自己的函数:

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))

我不知道任何预定义的库函数可以完成此操作。

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

2011-03-17 18:43:30