-- 将数值分解成bytes_tablelocal function decompose_byte(data) if not data then return data end local tb = {} if data == 0 then table.insert(tb, 0) return tb end local idx = 1 while data > 0 do table.insert(tb, math.mod(data, 2)) data = math.floor(data/2) end return tb;end-- 按位合成一个数值local function synthesize_byte(bytes_table) local data = 0; for i,v in ipairs(bytes_table) do data = data + math.pow(2, i - 1) * bytes_table[i] end return dataend-- 使用方法local function show_bytes(t) local str = "" for i,v in ipairs(t) do str = tostring(v) .. str; end print(str)endlocal tb = decompose_byte(11)show_bytes(tb);print(synthesize_byte(tb))local str = string.format("%c%c", 255, 98)print(str, #str)tb = decompose_byte(string.byte(str, 1))show_bytes(tb)print(synthesize_byte(tb))tb = decompose_byte(string.byte(str, 2))show_bytes(tb)print(synthesize_byte(tb))