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

假设我有这个数字:

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, +(很多数字)...

期望的结果:

7, 208
点赞
用户88888888
用户88888888

根据评论,如果我想要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
2017-01-05 22:03:18