lua - 如何获取无符号整数组成的字节?

标签 lua

假设我有这个数字:

local uint = 2000;

我怎样才能得到它组成的字节?例如:

print(sepbytes(uint));
-- 7, 208

我的尝试:

local function sepbytes(cur)
  local t = {};
  repeat
    cur = cur / 16;
    table.insert(t, 1, cur);
  until cur <= 0
  return table.unpack(t);
end

print(sepbytes(2000));

这导致:

0   9.8813129168249e-324, +(lots of numbers)...

预期结果:

7, 208

最佳答案

根据评论,如果我想要 2 个固定字节(这是当前的情况),我可以使用 @ajcr 解决方案:

local function InParts(num)
    return ((num & (0xff << 8)) >> 8), (num & 0xff);
end

@EgorSkriptunoff(Lua 5.3)解决方案适用于任何字节数。

local function InParts(num)
    return string.pack(">I2", uint):byte(1, -1);
end

关于lua - 如何获取无符号整数组成的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41492292/

相关文章:

luarocks 安装失败?

c++ - 如果我使用同一个 key 两次推送用户数据会怎样?

android - Corona newScrollView hideScrollBar 仍然显示滚动条

lua - 调用 math.randomseed(os.time()) 时堆栈溢出

c - 如何用C语言进行lua表操作?

c - 在嵌入式 c 应用程序中嵌入 python 解释器

loops - Lua循环知道循环何时结束

lua - 一个零值,尝试了一切

c++ - 我如何链接到 Lua 中的回调函数,以便在重新加载脚本时更新回调?

c++ - Lua PANIC 错误