我要转换此十六进制数组:
[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']
因此,我不能将结果用作二进制数组。该怎么做?
答案 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:])
这需要一个十六进制数组,并将其转换为二进制!