шестнадцатеричный массив в двоичный массив - PullRequest
0 голосов
/ 24 октября 2018

Я хочу преобразовать этот шестнадцатеричный массив:

[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']

Следовательно, я не могу использовать результат в виде двоичного массива.Как это сделать?

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Этот лайнер вернет список целых чисел, как вы хотите:

hex = [7,3,2,0,1,9,0,4]
list(map(int,"".join([format(x, '04b') for x in hex])))
0 голосов
/ 24 октября 2018

Вы можете использовать побитовые операции:

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]
0 голосов
/ 24 октября 2018
arr = [7,3,2,0,1,9,0,4]

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

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

Это берет шестнадцатеричный массив и преобразует его в двоичный файл!

...