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



我想转换这个十六进制数组:

[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 个整数是二进制格式的 7 个 (0111(,依此类推。

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

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

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

这一个行将根据需要返回整数列表:

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

您可以使用按位运算:

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]
arr = [7,3,2,0,1,9,0,4]
hexa = ''.join(str(e) for e in arr)
print(bin(int(hexa,16))[2:])

这将采用十六进制数组并将其转换为二进制!

最新更新