十六进制数组到二进制数组

时间:2018-10-24 13:29:08

标签: python binary hex

我要转换此十六进制数组:

[7,3,2,0,1,9,0,4]

进入这个

[0,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0]

您可以识别出前4个整数,例如二进制格式(0111)的整数,例如7等等。

我尝试使用format(x, '04b'),但结果为字符串格式:

['0111','0011','0010','0000','0001','1001','0000','0100']

因此,我不能将结果用作二进制数组。该怎么做?

3 个答案:

答案 0 :(得分:1)

这一行将返回所需的整数列表:

hex = [7,3,2,0,1,9,0,4]
list(map(int,"".join([format(x, '04b') for x in hex])))

答案 1 :(得分:1)

您可以使用按位运算:

h = [7,3,2,0,1,9,0,4]
[i >> b & 1 for i in h for b in range(3, -1, -1)]

这将返回:

[0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0]

答案 2 :(得分:0)

arr = [7,3,2,0,1,9,0,4]

hexa = ''.join(str(e) for e in arr)

print(bin(int(hexa,16))[2:])

这需要一个十六进制数组,并将其转换为二进制!