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

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

05.05.2023, 21:02. Показов 908. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru