Lua实现十六进制(Hex)转二进制(Bin)

用Lua实现将十六进制数字串转换成二进制数字串。

代码:

-- Convert hex to binary
local hex_bin_map = {
    ['0'] = "0000", ['1'] = "0001", ['2'] = "0010", ['3'] = "0011",
    ['4'] = "0100", ['5'] = "0101", ['6'] = "0110", ['7'] = "0111",
    ['8'] = "1000", ['9'] = "1001", ['a'] = "1010", ['b'] = "1011",
    ['c'] = "1100", ['d'] = "1101", ['e'] = "1110", ['f'] = "1111"
}

function hexToBinary(hexString)
    local isPass, value, failMsg = true, nil, nil

    value, _ = hexString:gsub("(%x)(%x)[ ]?", function (h, l)
        return string.format("%s%s",hex_bin_map[string.lower(h)], hex_bin_map[string.lower(l)])
    end)
    
    value = value or ''
    
    return isPass, value, failMsg
end

测试:

print(hexToBinary("29562300"))

结果:

true	00101001010101100010001100000000	nil

Hex: 29562300 -> Bin: 00101001010101100010001100000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值