加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在lua中提取32位int的4个字节

发布时间:2020-12-14 21:47:27 所属栏目:大数据 来源:网络整理
导读:我有一个lua函数,可以将ip地址转换为32位int local str = "127.0.0.1"local o1,o2,o3,o4 = str:match("(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)" )local num = 2^24*o1 + 2^16*o2 + 2^8*o3 + o4 我想要反函数,即从int获取4个字节 解决方法 您可以使
我有一个lua函数,可以将ip地址转换为32位int

local str = "127.0.0.1"
local o1,o2,o3,o4 = str:match("(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)" )
local num = 2^24*o1 + 2^16*o2 + 2^8*o3 + o4

我想要反函数,即从int获取4个字节

解决方法

您可以使用bit或bit32库(包含在Lua 5.2和LuaJIT中,可用作5.1的模块).您还可以使用已有的反向操作:

print(math.floor(num / 2^24),math.floor((num % 2^24) / 2^16),math.floor((num % 2^16) / 2^8),num % 2^8)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读