【问题标题】:How do I convert userdata to a uint32 or float?如何将用户数据转换为 uint32 或浮点数?
【发布时间】:2011-07-17 15:32:38
【问题描述】:

如何像这样转换用户数据:

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

使用 Lua 到 uint32 或浮点数?我在文档中找不到任何关于此的内容。

我尝试了各种方法,但都没有奏效:

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

【问题讨论】:

    标签: floating-point lua uint32


    【解决方案1】:

    我宁愿定义自己的函数:

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

    不知道任何预定义的库函数可以做到这一点。

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

    【讨论】:

      猜你喜欢
      • 2022-11-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多