首页 > 代码库 > lua 按拉分析与合成

lua 按拉分析与合成

-- 将数值分解成bytes_tablelocal function decompose_byte(data)    if not data then        return data    end    local tb = {}    if data =http://www.mamicode.com/= 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 = http://www.mamicode.com/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))