Мне потребовалось некоторое время, чтобы получить данные на этот момент. Но у меня есть этот массив строк:
'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)
Преобразование массива строк в транспонированный двоичный/шестнадцатеричный формат ⇐ Python
Программы на Python
1774845203
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][i]
list3.append(s)
# list3 has the final binary array, still need to convert to hex
print(list3)
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия