Преобразование массива строк в транспонированный двоичный/шестнадцатеричный форматPython

Программы на Python
Ответить
Anonymous
 Преобразование массива строк в транспонированный двоичный/шестнадцатеричный формат

Сообщение Anonymous »

Мне потребовалось некоторое время, чтобы получить данные на этот момент. Но у меня есть этот массив строк:
'00000000000000000000000000000000'
'00000000000000000011111110000000'
'00011100000000011111111111110000'
'00011100000000111111111111111000'
'00011100000001111100000001111110'
'00011100000001111000000000011110'
'00011100000011110000000000001111'
'00011100000011100000000000000111'
'00011100000011100000000000000111'
'00011100000011100000000000000111'
'00011100000011100000000000000111'
'00011110000001110000000000001110'
'00011111111111111000000000111110'
'00011111111111111100000011111100'
'00000001111111111100000011111000'
'00000000000000111100000011100000'

Это массив из 16 строк с массивом [0] вверху. Я хочу преобразовать его в набор шестнадцатеричных чисел, где byte0 bit15 — это нижний левый угол, а byte0 bit0 — верхний левый угол. Итак, я хочу получить: 0x0000, 0x0000, 0x0000, 0x3FFC и т. д. То есть первый столбец выше — это первое 16-битное число с младшим битом вверху. Я использую Python, и мой мозг перегорел от того, что я дошел до этого момента.
Вот то, что я написал, и это действительно работает, но я бы хотел сделать это Pythonic-способом с помощью встроенного цикла.
# list2 contains the array of bits at this point
list3 = []
for i in range(32):
s = ""
for j in range(15, -1, -1):
s = s + list2[j]
list3.append(s)
# list3 has the final binary array, still need to convert to hex
print(list3)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»