假设我有这个电话号码:

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/

10-15 02:12