将十六进制覆盖到bin并放入另一个数组Python 3

时间:2018-10-26 10:58:44

标签: python arrays python-3.x

我正在研究Python 3项目。我的代码更长一些,但是我为您准备了一个可以正常工作的示例代码的基本概念。

arr = []
arr2 = []
number = (["01", "02", "03" ])
arr = number
print(arr) # Output : ["01", "02", "03"]

问题: 如何将十六进制转换为bin将此数字转换为另一个数组? 注意: 我的预期输出是arr2:["00000001", "00000010", "00000011"] 当我print(arr2[0])我想看00000001

3 个答案:

答案 0 :(得分:4)

您可以在列表理解中使用字符串格式化程序:

['{:08b}'.format(int(n, 16)) for n in number]

这将返回:

['00000001', '00000010', '00000011']

答案 1 :(得分:1)

使用bin功能。将int转换为二进制。 [2:]“剪切” b0(函数返回etc 03-> b011),如果要用8个零填充数字,请使用zfill(8)函数

number = (["01", "02", "03" ])
    arr = []
    for i in number:
        i = int(i)
        i = str(bin(i)[2:]).zfill(8)
        print(i)
        arr.append(str(i))


    print(arr)

答案 2 :(得分:0)

作为一种可能的方式:

hex_var = "02"
length = 8

a = bin(int(hex_var, 16))[2:]
print(str(a).zfill(length))