如何将 userdata 转换为 uint32 或 float?

发布于 2024-10-22 13:31:10 字数 308 浏览 3 评论 0原文

如何

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

使用 Lua 将用户数据转换为 uint32 或 float?我在文档中找不到任何有关此内容的内容。

我尝试了各种方法,但没有一个有效:

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

How do I convert user data like this:

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

to either a uint32 or float using Lua? I cant find anything in the documentation that talks about this.

I've tried various methods and none of these have worked:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲性难收 2024-10-29 13:31:10

我宁愿定义自己的函数:

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

不知道任何预定义的库函数可以执行此操作。

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

I'd rather define my own function:

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

Don't know any predefined library function to do this.

Note: You may want to consider the endianness of the number.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文