Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.04.2023
Сообщений: 8

Реализовать на Python разбор двоичного формата данных

05.05.2023, 21:02. Показов 889. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xd 0x4c 0x58 0x4a, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 int32
2 int8
3 int64
4 Структура B
5 Массив int8, размер 7

Структура B:

Поле Описание
1 Структура C
2 uint64
3 uint32
4 int64
5 int32

Структура C:

Поле Описание
1 double
2 Размер (uint16) и адрес (uint16) массива структур D

Структура D:

Поле Описание
1 int8
2 int8
3 int8
4 Массив int64, размер 2
5 int8
6 Массив uint8, размер 5
7 uint32

Ниже показаны примеры разбора двоичного формата.

Пример 1

Двоичные данные:

(b'\rLXJ\xc6\xa8\x9c\xf9\xc6&\xec\xe7U\x b0}\xdaJ\xfe?kh\x9f\x9b\xef?\x03\x00<'
b'\x00#\x1a\xa5\x18`r8/\xf5\x15\xa1"\xc2\xa9\xe0\x0b\xecT`\xac8 \xf6\x89'
b'\xee\x85A.K;\xab\x9c\x15\xbfT\xe3\xb5_ \xba\xffyn\xeb\xf8\xdbRE\x9d'
b'\xadm\xd9\xd5\xf1oO\xb17\xca\xa8H\x19 \xf5\xf3\x88*\xfbO\x14|P\xe3Md\xc3\xbe'
b'\x18SN\xc7<\x9e~\xb6]%\x11o\xe8hE S\x1c5\x08?"\xe2\xa1\x8ab\xac\xce'
b'\xbf3\xf6*\x83\x1dU\xc2\x84Q\xfb\t,r\x 9f')

Результат разбора:

{'A1': -107173690,
'A2': -58,
'A3': 5393761700038568998,
'A4': {'B1': {'C1': 0.987746910041096,
'C2': [{'D1': 21,
'D2': -65,
'D3': 84,
'D4': [-1482113088107858461, -2779374504033199112],
'D5': -43,
'D6': [241, 111, 79, 177, 55],
'D7': 424192202},
{'D1': 32,
'D2': -11,
'D3': -13,
'D4': [-2067015802280007032, -4085236446233664435],
'D5': 60,
'D6': [158, 126, 182, 93, 37],
'D7': 1760063249},
{'D1': 69,
'D2': 32,
'D3': 83,
'D4': [-8457229988510812900, -8995106603597386654],
'D5': 29,
'D6': [85, 194, 132, 81, 251],
'D7': 2675059721}]},
'B2': 3402595275534309923,
'B3': 580982261,
'B4': -6025722928633435710,
'B5': -292948424},
'A5': [-123, 65, 46, 75, 59, -85, -100]}

Пример 2

Двоичные данные:

(b'\rLXJ\xf9\xae_\xcc>\xf8\x8e,\xado;\xb c\xe1tP\x13U\x80\xa7\xe8\xbf\x02\x00<'
b'\x00\x7f\xb5\t\xed\xbda\xd6\xcfiP\x81\ x1b\xbcj\xdcG.K@\xaf\xa5}!'
b'\\\xe3\x1b\xac\x0b*\xc6\x84\xea\xb0)\x 17\xff\x1c\x11M\xc6xL\xa7\x8b\x1f_n'
b'\x18\xcd\x1cj\x0f\xa6\r\xab*$\x05\x1d\ x12\xdc\xce\xdc\xfa\x1a\xf1\x03'
b'\xb0K\n\x06\xed\xca\xa2b7\xbd$e\xd3\xb 2\xd2_\x8d\x04_V\xb0\xf0')

Результат разбора:

{'A1': -866144519,
'A2': 62,
'A3': -2180802768721375496,
'A4': {'B1': {'C1': -0.7704469358091175,
'C2': [{'D1': -22,
'D2': -80,
'D3': 41,
'D4': [5510372178389696279, 2075341865609038759],
'D5': 106,
'D6': [15, 166, 13, 171, 42],
'D7': 303891748},
{'D1': -36,
'D2': -50,
'D3': -36,
'D4': [435243533347134202, 7288158142567992045],
'D5': -45,
'D6': [178, 210, 95, 141, 4],
'D7': 4038088287}]},
'B2': 14976265079220712831,
'B3': 461459561,
'B4': -5818568056416474436,
'B5': 1545698725},
'A5': [-29, 27, -84, 11, 42, -58, -124]}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2023, 21:02
Ответы с готовыми решениями:

Реализовать разбор двоичного формата данных
Добрый вечер, уважаемые форумчане. Есть у меня вот такаязадача - написать код на python (должна быть 1 функция main и только она одна...

Реализовать разбор двоичного формата данных
Дано задание: Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x44 0x52 0x58 0x42, за которой следует...

Реализовать разбор двоичного формата данных
Данные начинаются с сигнатуры 0x31 0x56 0x4f 0x5a, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2023, 21:02
Помогаю со студенческими работами здесь

Реализовать разбор двоичного формата данных
Всем привет. Прошу помочь реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4d 0x51 0x51, за которой следует...

Реализовать разбор двоичного формата данных
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4b 0x49 0x50 0x5d, за которой следует структура A. Порядок...

Задача, реализовать разбор двоичного формата данных, но программа не работает
Данные начинаются с сигнатуры 0x31 0x56 0x4f 0x5a, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в...

Разбор формата *.id
Кто-нибудь сталкивался с задачей расковырять *.ID Файл и вытащить от туда имя пользователя? Открыт ли формат ?

Разбор программы.Перевод двоичного числа в десятичн
char bin // изображение двоичного числа, почему именно так и что такое bin? нигде не могу найти long int dec //десятичное число, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru