Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x79 0x48 0x4f 0x42 0x52
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | float |
2 | Размер (uint16) и адрес (uint16) массива char |
3 | uint16 |
4 | uint8 |
5 | int64 |
6 | uint64 |
7 | Структура B |
Структура B:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint32) массива структур C |
2 | int8 |
3 | uint8 |
4 | uint32 |
5 | Структура D |
6 | Размер (uint16) и адрес (uint16) массива int8 |
Структура C:
Поле | Описание |
---|---|
1 | uint16 |
2 | int16 |
Структура D:
Поле | Описание |
---|---|
1 | uint32 |
2 | Массив int16, размер 8 |
3 | uint32 |
4 | int8 |
5 | Размер (uint16) и адрес (uint16) массива uint32 |
6 | float |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'yHOBR\xd9\xec\x15?\x02\x00S\x00\x0f\x83B\x8b=\x02`\xf2\xe2w\xa0'
(b'\xe8\xa3\x10\xa8bG+\xce\x03\x00\x00\x00U\x00\x00\x00\\\xe8A\x19'
b'\xad\x16\xd1\x89\xd4\x9fu\xaf `\x8eI\xca\xddNK\xa2\x1f\x9c\\w\xb9\x06\x0c'
b'\xb8{#\x03\x00a\x00\xa1F\xa2\xbe\x05\x00m\x00sv\xb1 \xab_\x00\xbb\xd2'
b'\x8d\xd9\xb9\xcd[?J\xc1\x9c\xd4\xad\xd8r\x95H\xd2n2r\xac)/')
Результат разбора:
'A1': 0.5856452584266663,
{'A2': 'sv',
'A3': 33551,
'A4': 66,
'A5': -6883783974791791221,
'A6': 14856046284863742952,
'A7': {'B1': [{'C1': 8369, 'C2': 24491},
'C1': 47872, 'C2': -29230},
{'C1': 47577, 'C2': 23501}],
{'B2': 92,
'B3': 232,
'B4': 380442945,
'B5': {'D1': 2681506257,
'D2': [-20619, 24608, 18830, -8758, 19278, 8098, 23708, -18057],
'D3': 2075659270,
'D4': 35,
'D5': [2629913151, 1926802900, 1859274901],
'D6': -0.3169451057910919},
'B6': [50, 114, -84, 41, 47]}}
Пример 2
Двоичные данные:
b'yHOBRS\xdc\n\xbf\x04\x00S\x00\xd2\x1c\x95o\xbd\xd1\xcb\x92\xeem\xbf'
(b'\xb0\xd9\x11LR}=O\x04\x00\x00\x00W\x00\x00\x00\xeab\t\x9d\x15\xca\xf2K'
b'\xcc\xd6d\x05\x01\xd5\x81\xb8\xdd\xd9\xec\xd3\xec\xa7\xd7\xc2\xf0\xeb\x01 '
b"\x13(\x1b\x03\x00g\x00L,\x93>\x08\x00s\x00vquj\x14\x04<\xb1g\xd0V'\xa4"
b'\xe5c\xec-Q\xec\xe0\xb1L\x1e\x8d\x83\x89\t\t\x08\x1d\xb4\xc7\xa0'
b'\xe2\xa6\xf2\xd1i\xcf\x19')
Результат разбора:
'A1': -0.5424243807792664,
{'A2': 'vquj',
'A3': 7378,
'A4': 149,
'A5': -4652800525751698065,
'A6': 5709857694992685488,
'A7': {'B1': [{'C1': 1044, 'C2': -20164},
'C1': 53351, 'C2': 10070},
{'C1': 58788, 'C2': -5021},
{'C1': 20781, 'C2': -7956}],
{'B2': -22,
'B3': 98,
'B4': 3390414089,
'B5': {'D1': 3603713010,
'D2': [1380,
-11007,
-18303,
-9763,
-11284,
-22548,
-15657,
-5136],
'D3': 672342017,
'D4': 27,
'D5': [2367573169, 151619971, 3350469896],
'D6': 0.28744733333587646},
'B6': [-96, -30, -90, -14, -47, 105, -49, 25]}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xff 0x43 0x55 0x48
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | int16 |
3 | uint64 |
4 | int16 |
5 | int32 |
6 | double |
7 | int8 |
8 | Размер (uint16) и адрес (uint32) массива int8 |
Структура B:
Поле | Описание |
---|---|
1 | int16 |
2 | Размер (uint32) и адрес (uint32) массива адресов (uint32) структур C |
3 | int64 |
Структура C:
Поле | Описание |
---|---|
1 | double |
2 | Массив float, размер 4 |
3 | int64 |
4 | Размер (uint32) и адрес (uint16) массива int8 |
5 | Структура D |
6 | Размер (uint32) и адрес (uint32) массива uint8 |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | float |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xffCUH\x00\xa9o\xc5FF\x1c\xfcOm\xef\xffd\xff\xe6\xfc\xefc?\xd8'
(b'\x15\xcb\x9c\xe0\xb5\x04\x10\x00\x08\x00\x00\x00\xbbqh4\xc2$}cX\x96a?'
b'\xe9Tb\xa2\xe4`\x9a\xbf=\xfb\x14>\xefI\x05\xbf%\x17\x8e\xbd\xb2\xbc\xc7\xa9'
b'\xcdZ\xa9\x01?#\x88\x00\x00\x00\x05\x00%\xa8\xd8b\x10?O\x07\xcd\x00\x00\x00'
b'\x05\x00\x00\x00*\xcf\x1fH\x02\x0f\x16\xbf\xef\xf9!\xc0\x86\xbd.\xbf'
b'\x10\xbc!\xbf\n#\xa4\xbf\x1c\xa2o\xbe.\xb7/}\xafJd\x9e\x1a.\xa0\x00'
b'\x00\x00\x03\x00e-\xda ~\xbe\xc3\x17\x8b\x00\x00\x00\x03\x00\x00\x00'
b'h\x00\x00\x00/\x00\x00\x00k\xff\x03\x00\x00\x00\x02\x00\x00\x00\xa1\xdf'
b"\x9ac\xe7;\x10\xee-X\xe9\x15'(\rB`")
Результат разбора:
'A1': {'B1': -253,
{'B2': [{'C1': 0.791550939701682,
'C2': [-0.742112398147583,
0.4673539698123932,
-0.6448906660079956,
-0.08727412670850754],
'C3': -6211208629157158008,
'C4': [113, 104, 52, -62, 36],
'C5': {'D1': -1462214128, 'D2': 0.8087127804756165},
'C6': [125, 99, 88, 150, 97]},
'C1': -0.9991616020469445,
{'C2': [-0.5653706192970276,
-0.5396063327789307,
-0.6118535399436951,
-0.17062066495418549],
'C3': 9056539171675057824,
'C4': [-49, 31, 72],
'C5': {'D1': 769269886, 'D2': -0.38103899359703064},
'C6': [2, 15, 22]}],
'B3': -2334443612058620371},
'A2': 28613,
'A3': 5063766701014642687,
'A4': 25855,
'A5': -419631261,
'A6': 0.3763302833566089,
'A7': 16,
'A8': [88, -23, 21, 39, 40, 13, 66, 96]}
Пример 2
Двоичные данные:
b'\xffCUH\x00\xaf\xb5\xc0\xf5\xc1\x02#X\x93\xd0P\xcd}\xd2R\xd1%\xbf\xea'
(b'\xae\xdc\x1eC=\x8c\xfd\x00\x06\x00\x00\x00\xc1\xa1v\xbc\x88(\xe4df\x9b&\xfb'
b'.\xbf\xeb9\xfa!\xfcv\xb4>1\xd0Z\xbe\xdf\r\xe2>@\t\xc9\xbb\xd0\x08V\xff1\n'
b'ID[\xb83\x00\x00\x00\x05\x00%\xcf\xdf!\x08=\xcbq\xc7\x00\x00\x00\x07\x00'
b'\x00\x00*\xfb\xcce\xe9\xd0q\xa0\x94\x1f\xb7\xbf\xb7\x82D\xb6\xf5\xb0'
b"@=\x8e\xca\xf9\xbeX\x88\xa6>\xec\x8aM?hgW\xe0\xfb'C\xc79\x85\x94\x00\x00\x00"
b'\x04\x00g\x92\xd1\xa0u>\xac\x83\x14\x00\x00\x00\x06\x00\x00\x00k\x00'
b'\x00\x001\x00\x00\x00qsW\x00\x00\x00\x02\x00\x00\x00\xa7x3\r"\xe6\xc3\x87'
b'<^\xa0N\x15\x15\xf2')
Результат разбора:
'A1': {'B1': 29527,
{'B2': [{'C1': -0.8508272804062558,
'C2': [0.17364636063575745,
-0.43565279245376587,
0.1875373274087906,
-0.006348649971187115],
'C3': -58254010383353805,
'C4': [-95, 118, -68, -120, 40],
'C5': {'D1': -807460600, 'D2': 0.0993381068110466},
'C6': [228, 100, 102, 155, 38, 251, 46]},
'C1': -0.09183148829259924,
{'C2': [0.06972307711839676,
-0.21145877242088318,
0.46199265122413635,
0.907826840877533],
'C3': -2235149618000591468,
'C4': [-5, -52, 101, -23],
'C5': {'D1': -1831755659, 'D2': 0.3369375467300415},
'C6': [208, 113, 160, 148, 31, 183]}],
'B3': 8661280951915218748},
'A2': -19008,
'A3': 17708437560630693968,
'A4': -12931,
'A5': -766324443,
'A6': -0.8338451949183976,
'A7': -3,
'A8': [94, -96, 78, 21, 21, -14]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x5a 0x4a 0x51 0x53
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | int16 |
2 | int64 |
3 | Массив char, размер 3 |
4 | double |
5 | double |
6 | Размер (uint32) и адрес (uint16) массива адресов (uint16) структур B |
7 | uint64 |
8 | Адрес (uint32) структуры C |
Структура B:
Поле | Описание |
---|---|
1 | int32 |
2 | int8 |
Структура C:
Поле | Описание |
---|---|
1 | Структура D |
2 | Адрес (uint16) структуры E |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | int16 |
Структура E:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint16) массива uint8 |
2 | int64 |
3 | int16 |
4 | int8 |
5 | uint8 |
6 | Размер (uint32) и адрес (uint16) массива uint8 |
7 | float |
8 | uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'ZJQS\xf0\xd6O\xfb\xd0\xcc\xa1\x8cv\xdfxfu\xbf\xc4\xd5W>>r`?\xed\xb3'
(b'\xa0\x85Dt.\x00\x00\x00\x02\x00=ya\xd1\x1f\xd6~f\xf5\x00\x00\x00j\xb1'
b'Gf\xff\rS\xca1\xac\xdd\x003\x008%\nr\x17;:\x1b\xb5Ta\xb4\x05\x00\x00\x00'
b'\x06\x00A\xbfmKXM\xbe\xfef\x9a\xcd\x82\xef\x00\x00\x00\x06\x00G?B\x84'
b'\xf8\x8cM6I\xce3k\x00M')
Результат разбора:
'A1': -3882,
{'A2': 5763429725452924639,
'A3': 'xfu',
'A4': -0.16276064433340576,
'A5': 0.9281771281126845,
'A6': [{'B1': -1320720641, 'B2': 13}, {'B1': 1405759916, 'B2': -35}],
'A7': 8746501886003013365,
'A8': {'C1': {'D1': 1295403470, 'D2': 13163},
'C2': {'E1': [37, 10, 114, 23, 59, 58],
'E2': -4652979997370286490,
'E3': -25907,
'E4': -126,
'E5': 239,
'E6': [27, 181, 84, 97, 180, 5],
'E7': 0.7598414421081543,
'E8': 140}}}
Пример 2
Двоичные данные:
b'ZJQS\x11%Q\xb6f\x8ak\x94\x0f+gvw\xbf\xee}p\xb7+\xd6\x98\xbf\xd4\x8aS><"'
(b',\x00\x00\x00\x02\x00=\xeb\xaa2A\x95\xd57R\x00\x00\x00i\x195\xean\xc4'
b'\xc5\xa1\x98\x93\xdc\x003\x008\xd0\x0cU\x04\x8bH\x9eL\xf6\xb7*'
b"\x00\x00\x00\x05\x00A\xb7\x02\xb3W-\xf4q}L\x170\xdb\x00\x00\x00\x06\x00F?<1'"
b'5\x92\xa0*\xa0\x81\x9f\x00L')
Результат разбора:
'A1': 4389,
{'A2': 5888006307529887531,
'A3': 'gvw',
'A4': -0.9528125360072464,
'A5': -0.3209426982653294,
'A6': [{'B1': 422963822, 'B2': -60}, {'B1': -979265389, 'B2': -36}],
'A7': 16981440602221918034,
'A8': {'C1': {'D1': -1834997088, 'D2': -32353},
'C2': {'E1': [208, 12, 85, 4, 139],
'E2': -5259444227800796803,
'E3': 19479,
'E4': 48,
'E5': 219,
'E6': [72, 158, 76, 246, 183, 42],
'E7': 0.7351250052452087,
'E8': 53}}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x47 0x4c 0x4e 0x41
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | double |
3 | float |
4 | uint32 |
5 | Размер (uint16) и адрес (uint32) массива uint32 |
Структура B:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры C |
2 | double |
Структура C:
Поле | Описание |
---|---|
1 | Массив адресов (uint32) структур D, размер 6 |
2 | int8 |
3 | Размер (uint32) и адрес (uint16) массива int64 |
4 | Адрес (uint32) структуры E |
5 | uint8 |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | int8 |
3 | int32 |
4 | Массив uint8, размер 4 |
Структура E:
Поле | Описание |
---|---|
1 | int16 |
2 | double |
3 | int64 |
4 | uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'GLNA\x95\x00ZMC\x9f\x84\x82\xed\xbf\x10\xa70\x0f0o\xc1?\x87"\xbe>2D'
(b' \xa6\x03\x00\xb9\x00\x00\x00/\xfa\xb9\xdc\x19\xf1\xd6C\x1b~\x98e\xfe\xf6&h'
b'\x89J\xb8\xc4\x0c\xdbF\x11-C\x1a\xa5\x1dg\x94|3L\x9aqR\x14\xe1\x17\xa6H\xb6S'
b'\tjX\xd9\xbb\xd0\xa7f\xf8\x18\xf6B\xda\x0b\x7f\x83D_q}[#\xb9\xd2b1{}g}l\xea'
b'\x83\x07\xecp\xea\x92\x89}\xc3Dj\xc9\xd7\x8c\x82\xd5\xa5d\xab\xe9\xe0f[\x19'
b'\x04\x10\xa7\xbf\xd4\xf6\xd1\x014\x11\xec{\x03$\x00\x00\x001\x00\x00'
b'\x00>\x00\x00\x00K\x00\x00\x00X\x00\x00\x00e\x00\x00\x00R\x02\x00'
b'\x00\x00r\x00\x82\x00\x00\x00\\p\xae\xc8g_\xeb\x1c\x12\x9b\x84\x95\xea')
Результат разбора:
'A1': {'B1': {'C1': [{'D1': -591791569,
{'D2': 25,
'D3': 457430769,
'D4': [126, 152, 101, 254]},
'D1': -1989662986,
{'D2': 74,
'D3': -619920200,
'D4': [70, 17, 45, 67]},
'D1': 1729996058,
{'D2': -108,
'D3': -1706282116,
'D4': [113, 82, 20, 225]},
'D1': -1236752873,
{'D2': 83,
'D3': -648517111,
'D4': [187, 208, 167, 102]},
'D1': 1123424504,
{'D2': -38,
'D3': 1149468427,
'D4': [95, 113, 125, 91]},
'D1': 1657977123,
{'D2': 49,
'D3': 2103934331,
'D4': [108, 234, 131, 7]}],
'C2': 82,
'C3': [4954942044866506988, 7252437531635468650],
'C4': {'E1': -5717,
'E2': -0.04504406747373735,
'E3': 8929531076235359956,
'E4': 3},
'C5': 92},
'B2': -0.9221823797801492},
'A2': 0.1362056802911913,
'A3': 0.37135717272758484,
'A4': 2787132466,
'A5': [1741205104, 303885151, 3935667355]}
Пример 2
Двоичные данные:
b'GLNA\x95\x00\x10\xcb_\x9a\x96K\xbc\xbf\xfc\xe0BYi\x11\xd1?I\x9fx\xbf\x8bj'
(b'c\xa3\x03\x00\xb9\x00\x00\x00X\xed\x04!m(\xcf\xb7\xcdi\x82\xa6\x18\x08\xfas'
b'\xc93-\xab\x80uV\xb4")Z&L\x00pL>7\x84K\xe3\x881\xce\xe2b\x81\xfa\xf6jZ\xc4'
b'\xb9V\xa4&\xa7\xd7\x11W^\xf9\x9c\xe3[\x1f\xe4\x9c\xcc\xa5hA\xfeB\x01\xc1'
b'\x9fu\xb67\xaa\xc3\xbc\xd4\x91\x83\x08\x95\xcf{\x00\xf2\x89\xe1\xdc\x9e'
b'\xd5\x9a\x16\x80\xcc\xecg\xaf\x83\xda\xe4\xbf/\xe4\n",\xbci\x1e\xd9$\x00\x00'
b'\x001\x00\x00\x00>\x00\x00\x00K\x00\x00\x00X\x00\x00\x00e\x00\x00'
b'\x00\xc0\x02\x00\x00\x00r\x00\x82\x00\x00\x00\x985l\x10\xdeN\x06\xb8\xe4R8F'
b'l')
Результат разбора:
'A1': {'B1': {'C1': [{'D1': 553971032,
{'D2': 109,
'D3': -843591896,
'D4': [105, 130, 166, 24]},
'D1': -915146232,
{'D2': 51,
'D3': 1971366701,
'D4': [86, 180, 34, 41]},
'D1': 4990554,
{'D2': 112,
'D3': -2076754356,
'D4': [75, 227, 136, 49]},
'D1': -2124225842,
{'D2': -6,
'D3': -1000707338,
'D4': [185, 86, 164, 38]},
'D1': 1460787111,
{'D2': 94,
'D3': 1541643513,
'D4': [31, 228, 156, 204]},
'D1': -29267803,
{'D2': 66,
'D3': 1973403905,
'D4': [182, 55, 170, 195]}],
'C2': -64,
'C3': [8921513250643891388, -7289745750315372032],
'C4': {'E1': -32746,
'E2': -0.6516741205117795,
'E3': 2191489591428178991,
'E4': 217},
'C5': 152},
'B2': -0.11052838581944635},
'A2': 0.2666877147380686,
'A3': -0.9711804986000061,
'A4': 2741201547,
'A5': [3725618229, 3837265486, 1816541266]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x58 0x52 0x50 0xf7
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint32 |
3 | Структура B |
4 | uint32 |
5 | int64 |
6 | int32 |
Структура B:
Поле | Описание |
---|---|
1 | Адрес (uint32) структуры C |
2 | Структура E |
3 | int64 |
4 | Размер (uint16) и адрес (uint32) массива uint8 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива адресов (uint16) структур D |
2 | uint32 |
3 | uint16 |
4 | int16 |
Структура D:
Поле | Описание |
---|---|
1 | double |
2 | int32 |
3 | int64 |
4 | Размер (uint32) и адрес (uint16) массива uint8 |
5 | int16 |
Структура E:
Поле | Описание |
---|---|
1 | uint32 |
2 | uint16 |
3 | int32 |
4 | uint64 |
5 | Размер (uint32) и адрес (uint32) массива int64 |
6 | Массив uint8, размер 2 |
7 | float |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'XRP\xf7\xcb\x8d\xad\t\xa7\x91\x00\x00\x00\x8c(\x08\x10\xe4\xf9\xfb3\xa2+\x17'
(b'$\x0c; LjA\xfc\x00\x00\x00\x04\x00\x00\x00\x9aY\x82\xbf-\x0e\x87\x882'
b'\xa3\xf1\x1d\xc9\xab\xb1\x00\x02\x00\x00\x00\xbaK\xc3\xf1R{B{\xd9\xa8A?Y'
b'\xab[\xc4\xc2\xd6-\xbf\xc7`\xdah\xd5; \xbf6\x06\xbd\x18\n\xa6\xf6$M'
b'R\xbd\x00\x00\x00\x02\x00LO\xcc\xeb\xfb?\xef{\x17`c\x0b\x16\x8f\xe9\xf9t'
b'\xbd`\xeb\xc7\n\xbdu\xc1\x00\x00\x00\x02\x00j\x90\xca\x00N\x00l'
b"\x00\x02\x00\x00\x00\x88b'i\xf7\xec\x8f\x03\x92\x9b\xd6>\xf7|G\xaa\r\x1c\xc9"
b'\xef\xd8^\xb3*2\xbe<\x88\xcdW2\xff,\x0f\xbcEi\x0b\xb2\x18\xaaS\xcd')
Результат разбора:
'A1': 52109,
{'A2': 2903091089,
'A3': {'B1': {'C1': [{'D1': -0.1826432239417608,
'D2': -1086978371,
'D3': 1732380582778589885,
'D4': [214, 45],
'D5': 20428},
'D1': 0.9837757952267079,
{'D2': -1880491660,
'D3': -4800577962665740863,
'D4': [235, 251],
'D5': -28470}],
'C2': 1646750199,
'C3': 60559,
'C4': 914},
'B2': {'E1': 671617252,
'E2': 63995,
'E3': 866265879,
'E4': 2597516094992957948,
'E5': [-7217512120151725555,
2074452815961598514,
-4738762292387971284,
1133857523660626090],
'E6': [89, 130],
'E7': -0.6760029196739197},
'B3': -8632657279733617743,
'B4': [83, 205]},
'A4': 1271132498,
'A5': 8881797589889007449,
'A6': -1420049214}
Пример 2
Двоичные данные:
b'XRP\xf7(\xd6\x88S\x82"\x00\x00\x00\x8c\x9e\xcd\xa5\xdco\x83\xbaXsB'
(b'\xc1\xde\x93\xf7\xc6l\xcc\xaa\x00\x00\x00\x03\x00\x00\x00\x9a\xd2\xd4>y'
b"A\x80E\x8f\xeb8,*~\xad\x00\x03\x00\x00\x00\xb2\x9a\xa7\x9a\xdd\xdf\x9f\xfb'"
b'\x8d"\xe1\xb8K^N\x068Q?\xd8QN,\xb0n\xa4\xc7\xcd\x99Ui\x8e5\xde@\x93'
b'\xf8Z\x00\x00\x00\x02\x00Ll\xdd\xbe,\xbf\xc7w\xf6\xde;\x19\x08ji\xc9\x01'
b"\r\xfc'\xff\xf4Xt\x8a\x00\x00\x00\x02\x00jmM\x00N\x00l\x00\x02\x00\x00"
b'\x00\x88\x8d\xc5j\xcf\xf9\xab-\xd7\x82\x8e\xfa\xf5\x7f\x02\x12\xad\x1e\xe6'
b'\xf8\xe1\\\x93\x0b\x7fE\x06^G/\xdc25\x02\xd7\x99')
Результат разбора:
'A1': 10454,
{'A2': 2287174178,
'A3': {'B1': {'C1': [{'D1': 0.3799624859254698,
'D2': -942827179,
'D3': 7606076049357797466,
'D4': [56, 81],
'D5': 27869},
'D1': -0.1833485207664085,
{'D2': 1785317633,
'D3': 1007724396893729930,
'D4': [190, 44],
'D5': 27981}],
'C2': 2378525391,
'C3': 63915,
'C4': 11735},
'B2': {'E1': 2664277468,
'E2': 28547,
'E3': -1168608446,
'E4': 13969765786545081514,
'E5': [-9039011469781232979,
2226740712585759615,
4973766498315940405],
'E6': [210, 212],
'E7': 0.24341392517089844},
'B3': 5012483536778329773,
'B4': [2, 215, 153]},
'A4': 2594675421,
'A5': -2332869934664457800,
'A6': 1264471558}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xbb 0x51 0x55 0x53
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив структур B, размер 2 |
2 | Адрес (uint32) структуры D |
Структура B:
Поле | Описание |
---|---|
1 | uint8 |
2 | Массив char, размер 6 |
3 | uint64 |
4 | Размер (uint32) и адрес (uint32) массива uint16 |
5 | int16 |
6 | Структура C |
Структура C:
Поле | Описание |
---|---|
1 | int32 |
2 | int64 |
Структура D:
Поле | Описание |
---|---|
1 | double |
2 | double |
3 | uint64 |
4 | Массив uint32, размер 8 |
5 | Массив double, размер 2 |
6 | float |
7 | uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xbbQUS\x95afdpbc\xa0[\xcc8\xff\x86}\x9f\x00\x00\x00\x02\x00\x00\x00R\xbc'
(b'.\xc6\xec\xed\xc3\xf6\x04\xd7\xd3\xa2\xaa^\xd4\x9fdbwebh\x01\x9d$\xf4'
b'\xe8\xefB\x89\x00\x00\x00\x02\x00\x00\x00VX\xc4\x11\x1d\xa5Q\xf5\xa7'
b'\x1e)\xed\xb2e\xa8\x00\x00\x00Z\x9f\x99\xc0\x9126\xad0?\xe1\xf0-T\xd0'
b'\xf6\x9e\xbf\xd55/\xa3;\xf0X\xf4\xcb\x11\xca\xbe\xf6\xc5U\xb5ici\x9f\xf1'
b'\x03K\x04\xd3\x06\xea:\xf4/:i\xa1-\r\x17\x86\x1a\xa4A\xcf\x0fV|\xab'
b'}\xde?\xed\xa1\x1d\xdbR%\xe2?\xdd\xd3`\xdd\x01\x1f\xe8\xbf )\xa0\x8c')
Результат разбора:
'A1': [{'B1': 149,
{'B2': 'afdpbc',
'B3': 11555053814126378399,
'B4': [40857, 49297],
'B5': -17362,
'B6': {'C1': -957551165, 'C2': -719212736505291052}},
'B1': 159,
{'B2': 'dbwebh',
'B3': 116289799680115337,
'B4': [12854, 44336],
'B5': 22724,
'B6': {'C1': 287155537, 'C2': -745594047876143704}}],
'A2': {'D1': 0.5605684906547201,
'D2': -0.3313712209781037,
'D3': 17639211928011588949,
'D4': [3043582825,
2683372363,
80938730,
989081402,
1772170509,
394664612,
1104088918,
2091613662],
'D5': [0.9259175571070808, 0.46602651197872413],
'D6': -0.6256351470947266,
'D7': 140}}
Пример 2
Двоичные данные:
b'\xbbQUS\xf5cxrpmr\x94y\x89J\x05+\xa1\xd4\x00\x00\x00\x02\x00\x00\x00Rj'
(b'\xac\xf8\xf1\xc6lA\xa3G\xbad\x93\xb0\x93Xjkmubu\x99\x0bf\xde\x0f\x87,\xec'
b'\x00\x00\x00\x02\x00\x00\x00V\xca\x10\xdf\x95\x03E\xba\xd5gk4\x9c'
b'9\x11\x00\x00\x00Z\xd00\x0f@\x85\x05\x1e\x04\xbf\xdc\xef\xedE\xa3U\x8c?\xe1'
b'\xf5\x83a\x18\xf6\xd6`\x07\t;qu\xda\xde7\xf6!\xe0F\xb54u]\xc8R4_.'
b'\xdb\x13I\xc6Q\x1fH\x8b\xdb\xb9\x18\xe3\x03+\x1b\x1b\x93\xb7\xbf\xe4'
b'\x0c\x01\x93B\xff\xba?\xb5\x0b\xb4l\xdbw\xd0\xbe\x88\x98\xb2\xf2')
Результат разбора:
'A1': [{'B1': 245,
{'B2': 'cxrpmr',
'B3': 10698733340802654676,
'B4': [53296, 3904],
'B5': 27308,
'B6': {'C1': -118372756, 'C2': 4729702899546042515}},
'B1': 88,
{'B2': 'jkmubu',
'B3': 11028021216476081388,
'B4': [34053, 7684],
'B5': -13808,
'B6': {'C1': -543882427, 'C2': -4983963702473770735}}],
'A2': {'D1': -0.45214397240246096,
'D2': 0.5612198730884426,
'D3': 6919509503389326046,
'D4': [938877408,
1186280565,
1573409332,
1596906259,
1237733663,
1217125305,
417530667,
454792119],
'D5': [-0.6264655948834765, 0.08220985086106158],
'D6': -0.266789972782135,
'D7': 242}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x34 0x44 0x53 0x44 0x54
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | uint8 |
3 | int8 |
4 | Размер (uint32) и адрес (uint32) массива структур G |
5 | Адрес (uint32) структуры H |
6 | uint16 |
7 | Размер (uint32) и адрес (uint32) массива int8 |
Структура B:
Поле | Описание |
---|---|
1 | float |
2 | Адрес (uint32) структуры C |
3 | int64 |
4 | uint16 |
Структура C:
Поле | Описание |
---|---|
1 | int8 |
2 | int32 |
3 | Структура D |
4 | uint8 |
Структура D:
Поле | Описание |
---|---|
1 | Адрес (uint32) структуры E |
2 | Структура F |
3 | Массив uint16, размер 4 |
4 | uint16 |
Структура E:
Поле | Описание |
---|---|
1 | double |
2 | int16 |
3 | uint64 |
4 | int16 |
Структура F:
Поле | Описание |
---|---|
1 | uint8 |
2 | double |
3 | Размер (uint16) и адрес (uint32) массива uint16 |
4 | double |
Структура G:
Поле | Описание |
---|---|
1 | uint32 |
2 | float |
Структура H:
Поле | Описание |
---|---|
1 | Массив uint32, размер 8 |
2 | uint16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'4DSDT\x11\x13\x01?G\x00\x00\x00\x06\xa3\xf3\xcd4X\x94XN\xa6\xabZ\x02\x00\x00'
(b'\x00r\x00\x00\x00\x82\x00\x00\x00\xcf\xd9\x05\x00\x00\x00\xa4'
b'\x00\x00\x00\xf2\xbd\xba\x01X+\xed?k\xe7\xf2\xd5\xdd=h\n\x1a8q\xf2\x8b'
b'\xaax\xef\r-\xbaIe/\x00\x00\x00\xe2\xc0P1\xbc\x04\xfa\xbe\xbf\x02\x00C'
b'\x00\x00\x00\xc0\x0f\xab\xd6h\xf9\xd1?\x0f\xa37\xca\xb2i\xa3\xd5\xe2'
b'\xd1?\x8d\xc7H=\xbf\x16L?P0WF\x9f\x1dB\xbfe\x0b\xea\xeb*\xb3z\xd2\xa1\xf6'
b'&.\xc1\xd3\x8a\xa8\x8e\xd4fD>\x03\xb8\x92\xcd\xeb\xe0k\x89\x1aB\xde[#'
b'\x9c\xd2\x98<o')
Результат разбора:
'A1': {'B1': 0.5041971802711487,
{'B2': {'C1': 13,
'C2': 1699330605,
'C3': {'D1': {'E1': 0.9115409883287937,
'E2': -6293,
'E3': 4042555058349266418,
'E4': -3471},
'D2': {'F1': 226,
'F2': -0.12100247950121723,
'F3': [43659, 61304],
'F4': 0.2808477493638257},
'D3': [41743, 51767, 27058, 54691],
'D4': 53730},
'C4': 63},
'B3': 6382823555707675398,
'B4': 42574},
'A2': 171,
'A3': 90,
'A4': [{'G1': 1028179853, 'G2': 0.7972220778465271},
'G1': 1180119120, 'G2': -0.7582644820213318}],
{'A5': {'H1': [3957984101,
3531256618,
774305441,
2827670465,
1147589774,
2461532990,
1809902541,
3728874121],
'H2': 9051},
'A6': 55759,
'A7': [-100, -46, -104, 60, 111]}
Пример 2
Двоичные данные:
b'4DSDT|\x08+?G\x00\x00\x00\x84\x90N\x91\x00\xfd\xa36T\n\xf9\xac\x02\x00\x00'
(b'\x00r\x00\x00\x00\x82\x00\x00\x00o\xcf\x03\x00\x00\x00\xa4\x00\x00\x000'
b'\x10\xc4\xeeN\xb7\xe3\xbf>/\xd0\x16\xce\x05}\x9d\xd8\xf8]LY\x953fU\xbbk\xfct'
b'/\x00\x00\x00k\x1eU\rF\x08\xe9\xe5\xbf\x02\x00C\x00\x00\x00\xa47\xa2g\xee'
b'\xc4\xd8?>br9\x1d\xe2J\xf4Kn\x85\xdbt\x16\x93R\xbe\x15?\x91\xfb\xa49\xfd\xfe'
b'\x81>\xfbU\xa8\xf08\xd6\xe8\xdb\x92\x02\x99\xb7?\xd9\xb6\xb8\xca\xb0'
b'L\x95s\xc4\x92m\x0b\x05_\xaeB0\xe8\xb3\x11e\xa3\xd16')
Результат разбора:
'A1': {'B1': 0.6680982112884521,
{'B2': {'C1': 85,
'C2': 1962699707,
'C3': {'D1': {'E1': -0.6161265052219331,
'E2': 12094,
'E3': 17931255076669494992,
'E4': 19549},
'D2': {'F1': 107,
'F2': -0.6846963279919327,
'F3': [38233, 26163],
'F4': 0.3870197307631946},
'D3': [25150, 14706, 57885, 62538],
'D4': 28235},
'C4': 133},
'B3': 3937268678131617924,
'B4': 2644},
'A2': 249,
'A3': -84,
'A4': [{'G1': 2467722459, 'G2': 0.5849353075027466},
'G1': 967113617, 'G2': 0.2538985311985016}],
{'A5': {'H1': [4037563899,
3689469496,
3080258194,
3098990911,
2504831178,
1838335091,
2925462795,
3018338370],
'H2': 25873},
'A6': 53103,
'A7': [-93, -47, 54]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x67 0x49 0x56 0x51 0x54
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив структур B, размер 8 |
2 | float |
3 | Структура C |
4 | int8 |
5 | Размер (uint16) и адрес (uint32) массива uint32 |
Структура B:
Поле | Описание |
---|---|
1 | uint16 |
2 | float |
Структура C:
Поле | Описание |
---|---|
1 | Структура D |
2 | Массив uint64, размер 4 |
Структура D:
Поле | Описание |
---|---|
1 | Массив uint8, размер 7 |
2 | uint16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'gIVQT|?\x97>`?\x9e\xf4\x13p\xb7\xbe\xbe\xa41V\xd8>vl\x9f\xe0<\xbf\xe1^-'
(b'\xe7b\xbb\xbbi\x19ND?\xbd\x0e/\x8b\xcc>\xb9\x1e\xb3\xfaK?\x96Dz\xbf\xfa\x9a{'
b'4\xa8\x8cA\xd4\x1e\xad\x13O\x83(\xb5\xcf\xb1v\xf7*K\x84\xb9k!\x8fq'
b'\x8e\xeb\xd5\x10\xb3|s\x19Y\x04@\r\xd6\xb3\xb9\x02\x00i\x00\x00\x00n\xad\xb1'
b'JTB\xe9\x1d')
Результат разбора:
'A1': [{'B1': 16252, 'B2': 0.8759550452232361},
{'B1': 62622, 'B2': -0.35827693343162537},
{'B1': 42174, 'B2': 0.4225325882434845},
{'B1': 27766, 'B2': -0.7378024458885193},
{'B1': 24289, 'B2': -0.0034622654784470797},
{'B1': 27067, 'B2': 0.7668166756629944},
{'B1': 3773, 'B2': 0.39949938654899597},
{'B1': 7865, 'B2': 0.7967941164970398}],
{'A2': -0.9776090383529663,
'A3': {'C1': {'D1': [250, 154, 123, 52, 168, 140, 65], 'D2': 7892},
'C2': [12812658650498667437,
2408222403607590774,
8985544192500330895,
12958559546407197043]},
'A4': -71,
'A5': [1253158254, 501826132]}
Пример 2
Двоичные данные:
b'gIVQT\xcfd\xcd\xa7\xc4>\xff\xb9\xe0nj\xbf@xm\xcdC\xbfF\x90\xcc\xef~'
(b'\xbe@U\x188\xd2>1$a\x95\x8a\xbe\xe7&Ax\xe5\xbe\xec\x07Y\xcd\xc2\xbd:\xc8\x92'
b'\xbe2\xc8y\xe5\xbdu\\\x8f\xba\x9d&\x1c\xb3)\xd9$\r\xa2{\x193\xca\xa6'
b'~\x81\xbb\x8d\xfc\x96\xd51\x1d\xc4\xa5\x03\xa3;h\x01\x8c\x85\x14\x02'
b'\x00i\x00\x00\x00}!"\x15\xdf\xe7\xb2M')
Результат разбора:
'A1': [{'B1': 25807, 'B2': 0.3840927183628082},
{'B1': 47615, 'B2': -0.9157543182373047},
{'B1': 30784, 'B2': -0.764853298664093},
{'B1': 36934, 'B2': -0.24896162748336792},
{'B1': 21824, 'B2': 0.4105842113494873},
{'B1': 9265, 'B2': -0.27067092061042786},
{'B1': 9959, 'B2': -0.4481830894947052},
{'B1': 2028, 'B2': -0.09511823207139969}],
{'A2': -0.2866838574409485,
'A3': {'C1': {'D1': [50, 200, 121, 229, 189, 117, 92], 'D2': 47759},
'C2': [947120594776499869,
9331078865329159074,
14131505999189413307,
9623068050972672933]},
'A4': 20,
'A5': [354558333, 1303570399]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x44 0x44 0x50 0x81
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | float |
2 | int8 |
3 | Структура B |
4 | Массив адресов (uint16) структур D, размер 2 |
5 | int16 |
Структура B:
Поле | Описание |
---|---|
1 | uint64 |
2 | double |
3 | Структура C |
4 | int32 |
Структура C:
Поле | Описание |
---|---|
1 | double |
2 | Размер (uint32) и адрес (uint32) массива char |
3 | Размер (uint16) и адрес (uint16) массива int32 |
Структура D:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива uint16 |
2 | uint64 |
3 | uint64 |
4 | Размер (uint32) и адрес (uint32) массива uint16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'DDP\x81?v\x076\xdcg\xea-\xffv\x83v~\xbf\xb9\x98{<\xa0n\xd0?\xaf\xa8'
(b'4N\x81\xd8\xc0\x00\x00\x00\x04\x00\x00\x007\x00\x02\x00;\x8d\xea\xcd'
b'\x8b\x00W\x00\x8fe\xb6zrdu\x90W\xde\xf2N\xcd\xf2Jf\xd8\x089\xe5\x83R\xfe{'
b"T\x1c}\x99VY\xbe5\x11\xddu\x00\x02\x00C'N!\xe5\x9a\xd0\xb5\x16\xbc%\x8d\xab3"
b'\x85]\t\x00\x00\x00\x08\x00\x00\x00G@\xa6\xec\x0e\xfc\xa7\rW\xcfM\xb9Y\xb9'
b'\t{B\x9ce^\xce}\xde\x83\xfcq\xf0\x83N\x00\x07\x00s\x98\xa6\xaaX\xb2'
b'\xfcn\n\xaf$\xd0\x03\r\xad\xfe*\x00\x00\x00\x07\x00\x00\x00\x81')
Результат разбора:
'A1': 0.9610475301742554,
{'A2': -36,
'A3': {'B1': 7487847905685108350,
'B2': -0.09998293142455883,
'B3': {'C1': 0.061830172141456696,
'C2': 'zrdu',
'C3': [-1873289486, 1322119754]},
'B4': -1913991797},
'A4': [{'D1': [26328, 2105],
'D2': 2832238485691217174,
'D3': 13557398019712048393,
'D4': [58755, 21246, 31572, 7293, 39254, 22974, 13585, 56693]},
'D1': [16550, 60430, 64679, 3415, 53069, 47449, 47369],
{'D2': 10999666437835746826,
'D3': 12620440767331958314,
'D4': [31554, 40037, 24270, 32222, 33788, 29168, 33614]}],
'A5': 26038}
Пример 2
Двоичные данные:
b'DDP\x81\xbdS\x1a$\x8de\xc1\x0c\t\x9c3\xab8\xbf\xd9F6\\\x82>\xc8\xbf\xc1>'
(b'Q\xc7\xcb\xacX\x00\x00\x00\x02\x00\x00\x007\x00\x02\x009x\xc7\xd3W\x00S\x00'
b'}f nf$w\x810G5\xc1*\x9cUK\x01\xb6\x1d\x92\xb9\xbcqyG\xe7\x0f\xe3\x18M(\x00'
b'\x05\x00A\x1d"\xe3\xa0\xb0\x99\xf8*\x99\xfa9\xa3\xc2\xfd\xf9q\x00'
b'\x00\x00\x04\x00\x00\x00K\xd6\xf6\xcf\xae\xc3\x7f\xa0\x9d\x8a\x9bR\xd2R'
b'\xad\x00\x05\x00oS\x91\xfd\xbf0m\xa9 :\x92\n_\x8f\x8f\xbf\x86\x00\x00\x00'
b'\x02\x00\x00\x00y')
Результат разбора:
'A1': -0.05153860151767731,
{'A2': -115,
'A3': {'B1': 7332154903750748984,
'B2': -0.39491042169627777,
'B3': {'C1': -0.1347143388332792,
'C2': 'nf',
'C3': [611811632, 1194705194]},
'B4': 2026361687},
'A4': [{'D1': [40021, 19201, 46621, 37561, 48241],
'D2': 2099490655605225514,
'D3': 11095244007494515057,
'D4': [31047, 59151, 58136, 19752]},
'D1': [55030, 53166, 50047, 41117, 35483],
{'D2': 6021873174364137760,
'D3': 4220447206346309510,
'D4': [21202, 21165]}],
'A5': 26144}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x56 0x4a 0x4e 0x13
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | uint32 |
3 | int8 |
4 | uint64 |
5 | Массив uint8, размер 3 |
6 | int64 |
Структура B:
Поле | Описание |
---|---|
1 | int16 |
2 | int32 |
3 | int8 |
4 | Размер (uint16) и адрес (uint32) массива адресов (uint32) структур C |
5 | Массив int8, размер 5 |
Структура C:
Поле | Описание |
---|---|
1 | Структура D |
2 | Адрес (uint32) структуры E |
3 | uint8 |
4 | uint8 |
Структура D:
Поле | Описание |
---|---|
1 | float |
2 | Размер (uint32) и адрес (uint16) массива int16 |
3 | uint32 |
4 | int16 |
Структура E:
Поле | Описание |
---|---|
1 | uint64 |
2 | uint32 |
3 | uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'VJN\x13~\x00\x053\xa4\xecP\xafPK\xd4uY\x01\xe5l\x1a\x1ei\xfc\xb8\xb1=x'
(b'+\xf1c\x10\xb3\xf7\x89\x08\x88vN8\x9be0\x95\xa1\xa7\xe4x\x17N\xf5\x84'
b'i\xbf\x02\x00\x00\x00\x1e\x00\x8aH\x8as\xc5y"\x00\x00\x00|Ns\x19\x9c\xc9'
b'\xcd\x05\xf9\xa8\x96N\xf9g\xf2\x05\xb5\r\xcd\xa6e$pY\x11T\x17\xc1^\xbf'
b'\x04\x00\x00\x00H\x00po\xb6\x10z^P\x00\x00\x00je2\x00\x00\x00`\x00'
b'\x00\x00\xed\xea\xd8\x17)\xfe\x14\x02\x00v\x00\x00\x00\x81\xa2\xc4\x1f\x16')
Результат разбора:
'A1': {'B1': -5395,
{'B2': -30861352,
'B3': 20,
'B4': [{'C1': {'D1': -0.91218501329422,
'D2': [4195, -2125],
'D3': 1938442378,
'D4': 31173},
'C2': {'E1': 7321507528868104329,
'E2': 2812384560,
'E3': 1310161124},
'C3': 124,
'C4': 78},
'C1': {'D1': -0.8701338171958923,
{'D2': [6515, -13924, 1485, -22279],
'D3': 280391536,
'D4': 24186},
'C2': {'E1': 987702231962308246,
'E2': 610641613,
'E3': 1410423152},
'C3': 106,
'C4': 101}],
'B5': [-127, -94, -60, 31, 22]},
'A2': 3970183941,
'A3': 80,
'A4': 16501568872269959343,
'A5': [108, 26, 30],
'A6': -1068628280200332183}
Пример 2
Двоичные данные:
b'VJN\x13~\x00\x15>F\xce\x97\x94\xbb&\xc9\xae\x12\xc5z\xe5\x8b\xd2\xe9\xbb'
(b'\xa3\xbfg%N\xde\xbf\xf2\xd5x\xf3IzZ,u\xa4\xc5\x8f\xf7W\xd8 \x1c\x0e\xcb\x86)'
b'\xc19\x02\x00\x00\x00\x1e\x00Ox\'a\xaa\x1d"\x00\x00\x00\xb2\'\xb7n\x11\xf7'
b'\xce\x1b-\xcaj\xb2\xf5\x95\x17;\\\t\x80\x15\xf2X\xc1\xd1\x07\x8b\x1a\x074?'
b'\x04\x00\x00\x00H\x00\x99F\xd1\xe5):P\x00\x00\x00\x92\x992\x00\x00\x00`\x00'
b'\x00\x00\x1f\x0e\x96\x89w\xb7\x80\x02\x00v\x00\x00\x00)\xbd\xdav\xf8')
Результат разбора:
'A1': {'B1': 3615,
{'B2': -1216902762,
'B3': -128,
'B4': [{'C1': {'D1': 0.0003684276598505676,
'D2': [-3393, 30933],
'D3': 1629976655,
'D4': 7594},
'C2': {'E1': 14241636755009325555,
'E2': 3629643663,
'E3': 3406699552},
'C3': 178,
'C4': 39},
'C1': {'D1': 0.7032333612442017,
{'D2': [28343, -2287, 7118, -13779],
'D3': 3855697561,
'D4': 14889},
'C2': {'E1': 674479016684925546,
'E2': 1492260224,
'E3': 2332545473},
'C3': 146,
'C4': 153}],
'B5': [41, -67, -38, 118, -8]},
'A2': 3460709909,
'A3': -105,
'A4': 8846497584947575700,
'A5': [229, 139, 210],
'A6': -2427962021579080727}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x52 0x47 0x56
, за которой следует структура A.
Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив адресов (uint16) структур B, размер 3 |
2 | float |
3 | Адрес (uint16) структуры C |
4 | Структура E |
5 | int16 |
6 | Размер (uint16) и адрес (uint32) массива char |
7 | int8 |
8 | Размер (uint16) и адрес (uint32) массива int16 |
Структура B:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint32 |
3 | uint64 |
4 | int8 |
Структура C:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры D |
2 | uint8 |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | uint16 |
3 | uint16 |
4 | uint32 |
Структура E:
Поле | Описание |
---|---|
1 | Массив int32, размер 8 |
2 | int8 |
3 | int64 |
4 | int32 |
5 | uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'RGV\x00O\x00^\x00m?\x00\x94*\x00\x88(8\\I\xcc;1t\x00l\xcc\xdcT\xe7Wqw'
(b"\x07\x95\x9a:}\xef*D\xf8\x81+H\xb9#\xd2Rq\xf2%e\x88\x02/\xc8\x80\xb8\xf2'"
b'e5T\x1a\xef1\x00\x04\x00\x00\x00\x8b\xdb\x00\x06\x00\x00\x00\x8f\xe8y\x1b[K'
b'\xa2r\xb4{\xe3\xc1Ph8)\xbe\xd0\xc90<\xd6\xba\xab2\xfc\xc4\x98\xadu$M\xd3\x86'
b'|/\xe3)5S3_\xfc\x14\xe1\x93\x17\x00\x00\xf8=f\x142u\r\xc0\t\x00|\xdckrxt\xae'
b'\xd9\x84\x1aC\xbdh\xabJ\xb0q\xfb')
Результат разбора:
'A1': [{'B1': 59513, 'B2': 458967970, 'B3': 8265367434262767672, 'B4': 41},
{'B1': 48848, 'B2': 3375381718, 'B3': 13450900773283605877, 'B4': 36},
{'B1': 19923, 'B2': 2256285667, 'B3': 2969371009439503585, 'B4': -109}],
{'A2': 0.5022608041763306,
'A3': {'C1': {'D1': 385876216, 'D2': 15718, 'D3': 5170, 'D4': 1963835401},
'C2': 220},
'A4': {'E1': [674782281,
-868535948,
7130332,
1424447345,
1996985754,
981331754,
1157136683,
1220092882],
'E2': 82,
'E3': 8210666188653604808,
'E4': -2135363033,
'E5': 1697993754},
'A5': -4303,
'A6': 'krxt',
'A7': -37,
'A8': [-20775, -31718, 17341, 26795, 19120, 29179]}
Пример 2
Двоичные данные:
b'RGV\x00O\x00^\x00m?o\xb8\r\x00\x88\x13\x81:d4\xeeO\x1e\x19\x1d\xb9[s'
(b'\x87\xdaz\xd2\x02\xf8\xaa\xcbKU\x8b\x04\xcd!{\x03P5\xf10\x82e\x12#'
b'\xf2Q\x80\x15\x05\xc4\xa2U\x0e\xbc\xdf\xf5\xbd\xc7\x00\x06\x00\x00\x00\x8b'
b'Z\x00\x05\x00\x00\x00\x91\xf7X\x92\xb0I\xf5sU+\x92\t\x8a\xaf\xd2\xef\x8a\xa9'
b'\xb4\x1f\xe6\xa1\xcaI\xac\x99!\xe2\xf2z\xe5_\xcc\xe8\xee\xd0\x17D'
b"\x8ff\xfa\xef\xbb\xd9\x0b\x05y\xde`\xc3\xd9\xcb\xda_\xe4'c\x9f\x00|Cxkhzh"
b'h\x90\xe8p\x9c$B\xa5\x9e\x8b;')
Результат разбора:
'A1': [{'B1': 63320, 'B2': 2461026805, 'B3': 8310596593607421906, 'B4': -17},
{'B1': 35497, 'B2': 3021989537, 'B3': 14576371442659816058, 'B4': -27},
{'B1': 24524, 'B2': 3907964951, 'B3': 4940280544198646027, 'B4': 5}],
{'A2': 0.9364021420478821,
'A3': {'C1': {'D1': 2044616899, 'D2': 55755, 'D3': 55903, 'D4': 3827786655},
'C2': 67},
'A4': {'E1': [327236196,
888033054,
421378395,
1938283130,
-771557206,
-884255349,
80552315,
55588337],
'E2': 48,
'E3': -9050807930532560875,
'E4': 96772693,
'E5': 247259125},
'A5': -16953,
'A6': 'xkhzhh',
'A7': 90,
'A8': [-28440, 28828, 9282, -23138, -29893]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x2d 0x4d 0x59 0x46 0x56
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | int64 |
2 | Массив адресов (uint16) структур B, размер 7 |
3 | double |
4 | Размер (uint32) и адрес (uint16) массива адресов (uint16) структур C |
5 | Адрес (uint16) структуры D |
6 | double |
7 | uint32 |
8 | int16 |
Структура B:
Поле | Описание |
---|---|
1 | int8 |
2 | uint16 |
Структура C:
Поле | Описание |
---|---|
1 | int16 |
2 | uint8 |
3 | uint32 |
4 | Массив int8, размер 3 |
Структура D:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint64 |
3 | Массив uint64, размер 5 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b"-MYFV,'\x9f\xbf\xdd\xe7\xc7\xbb\x009\x00<\x00?\x00B\x00E\x00H\x00K?"
(b'\xc3\x81\xa7I3\x8c\xc0\x00\x00\x00\x02\x00b\x00f?\xb9l\x18\x1cB2P\xea\xd0Y8Q'
b'\x955\x14\xf3o\xeex\x83\xe6\x954\xa3=\xa2\xe5\x00\xc3g|\x9f\xa6\xcc^g'
b'\xff8\xc1\x0e\x1bK\x95\xa8\xd8\x1a~O\x8fg\x11\x1e+\xac\x00N\x00X\x8b\n'
b'\xcb\xd9"\xe9\xf2\x83<\x1fm!\x8cT8\xdbY\x82@\x95\x9e\x8f\xa3\x16\x1e2'
b"\xd3\xa9\xdf\xbc3][\xc5F\xad\xed\x86\x986@\x85\xec'\xb0s\xa2Ei\x83")
Результат разбора:
'A1': 3181687308171069371,
{'A2': [{'B1': 53, 'B2': 5363},
'B1': 111, 'B2': 61048},
{'B1': -125, 'B2': 59029},
{'B1': 52, 'B2': 41789},
{'B1': -94, 'B2': 58624},
{'B1': -61, 'B2': 26492},
{'B1': -97, 'B2': 42700}],
{'A3': 0.1523942096165225,
'A4': [{'C1': 24167, 'C2': 255, 'C3': 952176155, 'C4': [75, -107, -88]},
'C1': -10214, 'C2': 126, 'C3': 1334798097, 'C4': [30, 43, -84]}],
{'A5': {'D1': 35594,
'D2': 14688810047836994591,
'D3': [7863720717724637570,
4653800129710923314,
15251967612475497413,
5092987915960991877,
17016763727732894083]},
'A6': 0.09930563630968803,
'A7': 3939522872,
'A8': 20885}
Пример 2
Двоичные данные:
b"-MYFVk\x9e\xc9H\x13'\x16\x00\x009\x00<\x00?\x00B\x00E\x00H\x00K\xbf\xe3VMf"
(b'DJ~\x00\x00\x00\x02\x00b\x00f?\xbcR\xd6\xf3\xdb\xdc0\x96\xdd\x13\x00\xf2'
b'\xe7m@\x89\x15\x81\x83\xf3\xcfq\xac\x95u\x11\x81\x06\xb7\x9b\x89Al\x1f\x1cb'
b'\xc9\x0f\x0e\xc8!\xbb\xae%C\xeb\xe2\x0b\x99g\x91O\xc6\xc9\x00N\x00X}\x14'
b'\xf7\xe6A\x8e?\xa6\x06\xe6\xea7\x14\x15\x0f\xd1N\x82M\xef\x82\xc9\x89k\xb4r'
b'#\x85\xf5e\x0e\xf6\x8d\x15\xf7r`\xe2/Fy\xd06\xb6n\xc7\xd6\xaa\xd0\xff')
Результат разбора:
'A1': 7754856919774729728,
{'A2': [{'B1': 109, 'B2': 16521},
'B1': 21, 'B2': 33155},
{'B1': -13, 'B2': 53105},
{'B1': -84, 'B2': 38261},
{'B1': 17, 'B2': 33030},
{'B1': -73, 'B2': 39817},
{'B1': 65, 'B2': 27679}],
{'A3': -0.6042849538228692,
'A4': [{'C1': 7266, 'C2': 201, 'C3': 252626977, 'C4': [-69, -82, 37]},
'C1': 17387, 'C2': 226, 'C3': 194602897, 'C4': [79, -58, -55]}],
{'A5': {'D1': 32020,
'D2': 17863037051220657894,
'D3': [16876980209286467202,
5615851062459872370,
2559721777621536021,
17830420399285238224,
3942460328388514047]},
'A6': 0.11063903287491494,
'A7': 2531070720,
'A8': -3353}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x5e 0x54 0x41 0x50 0x54
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | int32 |
2 | Размер (uint32) и адрес (uint32) массива char |
3 | Структура B |
4 | Массив структур D, размер 4 |
5 | Структура E |
Структура B:
Поле | Описание |
---|---|
1 | uint8 |
2 | Адрес (uint16) структуры C |
3 | uint8 |
4 | int16 |
5 | int16 |
6 | uint8 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива int8 |
2 | uint32 |
Структура D:
Поле | Описание |
---|---|
1 | uint8 |
2 | uint64 |
3 | int8 |
4 | uint32 |
Структура E:
Поле | Описание |
---|---|
1 | Массив int64, размер 7 |
2 | uint8 |
3 | Размер (uint32) и адрес (uint32) массива int32 |
4 | uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'^TAPT\xe1\xb6X~\x00\x00\x00\x03\x00\x00\x00\x97\xb4\x00\x9d\x0b\xf3B\x9f,,~d'
(b'S\xe5>2\xdc\xde\xbb\xea1\x06\xd6\x86XA\xeff\xa0\xe4\xa2\xd0\xe8\xce\x87\xb3'
b'\xfb\xa6\xf1iQ\x18\xd5t\xdd\x85\xdcS\x03\xc5k\xcf\xae\x07\xb7\xc3s\x04]\xd9'
b'R#(|\t\x92\xe7o\xd1z|\xf14;\xb1\x10\xe6\xf9\x16\x91mx!/x\x98\xc4\xdc'
b'j\xe3k\xa4T\xad\xeb\xd7\x15\x01\xa9\x08K\x86FY\xf4P\xc54\x80\x82\xbd\xb5'
b'I\x87\xce\xda*p\xb5Q\xae^\xd6\x00\x00\x00\x04\x00\x00\x00\xa7\x16'
b'\x0e\xfa\xa5adn{/T\x00\x03\x00\x00\x00\x9aL4\xc4\x0b\x82\x18>\xb9\xd1'
b'H6\x14\xc9\x96\x96/\xdd\xd8\xc3\x1a')
Результат разбора:
'A1': -508143490,
{'A2': 'adn',
'A3': {'B1': 180,
'B2': {'C1': [123, 47, 84], 'C2': 1278526475},
'B3': 11,
'B4': -3262,
'B5': -24788,
'B6': 44},
'A4': [{'D1': 126, 'D2': 7229373882163846843, 'D3': -22, 'D4': 822531718},
'D1': 88, 'D2': 4751128973115838696, 'D3': -50, 'D4': 2276719526},
{'D1': 241, 'D2': 7588874152163771868, 'D3': 83, 'D4': 63269839},
{'D1': 174, 'D2': 556127977765460306, 'D3': 35, 'D4': 679217554}],
{'A5': {'E1': [-1769965804520917957,
-5687792371869061768,
2391262524690164451,
7756417564201653505,
-6266675841408043952,
-4236620050431915641,
-3541471493406740898],
'E2': 214,
'E3': [-2112340295, -783796716, -912878033, -572996838],
'E4': 370080421}}
Пример 2
Двоичные данные:
b'^TAPT\xf2\xa9\xffa\x00\x00\x00\x03\x00\x00\x00\x97\x96\x00\x9d'
(b'\xa0\x06\x00\x8e#\xdcx\xfc\xdc\x8aw\xcc0\x94[\xc4\xd9\xe6*\xba\x8cG\xc6\xc5'
b'\x07\xf0\xaeiS\t\xa9\xa1\xc6\xe1.\xd8\xc1\xa8B\xe1&\x0e\n\xeePE\xd0\x1c'
b'\xc2Q\x1f!\x85\x9e3mO\xe8\x86M\xf8\xb2U\x90"-^\xd0\x0ci\xbe\xb4\x1f\xc9e\xd2'
b"'\xad\x02\x90p\x91\xbd\xbf,\x8f\x84\xc3\x91\x17\xe7\xa5\xccS\x81\x11"
b'\xe9\xdeY\xd5\x0e\xf9yD8\\:V\xf8t\xb9\rF\xce\xa6\xb0\x89%L\x00'
b'\x00\x00\x02\x00\x00\x00\xa7C!8\x0bnnu\n\x1c\xb4\x00\x03\x00\x00\x00\x9a>'
b'!\x12^\xf56Xh\x0f\x02\x1c\x8c')
Результат разбора:
'A1': -223740063,
{'A2': 'nnu',
'A3': {'B1': 150,
'B2': {'C1': [10, 28, -76], 'C2': 1042354782},
'B3': 160,
'B4': 1536,
'B5': -29149,
'B6': 220},
'A4': [{'D1': 120, 'D2': 18220590439565661275, 'D3': -60, 'D4': 3655740090},
'D1': 140, 'D2': 5172037859974998355, 'D3': 9, 'D4': 2845951713},
{'D1': 46, 'D2': 15618949987896266250, 'D3': -18, 'D4': 1346752540},
{'D1': 194, 'D2': 5845427699118730575, 'D3': -24, 'D4': 2253256882}],
{'A5': {'E1': [6165465468129774697,
-4705100760838166611,
184771355978181775,
-8880094508387808173,
-9146272227013619975,
8738171145772529780,
-5112352148621850331],
'E2': 76,
'E3': [-180987800, 251796620],
'E4': 1126250507}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x44 0x44 0x55
, за которой следует структура A.
Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | int64 |
2 | int32 |
3 | Структура B |
Структура B:
Поле | Описание |
---|---|
1 | uint64 |
2 | int16 |
3 | uint16 |
4 | Адрес (uint32) структуры C |
5 | uint64 |
Структура C:
Поле | Описание |
---|---|
1 | int64 |
2 | float |
3 | Массив адресов (uint32) структур D, размер 2 |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | Размер (uint16) и адрес (uint32) массива uint8 |
3 | float |
4 | uint16 |
5 | uint16 |
6 | float |
7 | Размер (uint16) и адрес (uint16) массива uint8 |
8 | Массив uint8, размер 7 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'DDU\xb5\xad\x0f\x86a\xf1\x05\xd8\x80\x97\xf1\xf0\xae\xa2\xadU\xa3.m\xd9\xe9'
(b'\x86\xd4\x10\x00\x00\x00u\xfd\xad\xca\tA2\xc9&]\xc7$\x95E\x1e:\\\n\x1d|o\x00'
b'\x06\x00\x00\x00\'\xbf"Jvac\xc5e?\x15,\xb7\x00\x02\x00-\xa1\xae\x04'
b'.\xa9-\xa9\xd1h\xec\xd6\xa7\n\xbe\x81\x00\x02\x00\x00\x00P\xbe\x93\xdaw\xda}'
b'\xed\xab\xbe\xf6\x0c<\x00\x02\x00R\xc3\xba\xda\x1f\x7f\xe3\x97\x8b\xbd{'
b'\x01X\xfc{\x97\xbe\xe6:\xf9\x00\x00\x00/\x00\x00\x00T')
Результат разбора:
'A1': -5355607312030431784,
{'A2': -2137525776,
'A3': {'B1': 12583810892148141529,
'B2': -5754,
'B3': 54288,
'B4': {'C1': -8377404486121129065,
'C2': -0.44966867566108704,
'C3': [{'D1': 169704559,
'D2': [93, 199, 36, 149, 69, 30],
'D3': -0.6339486837387085,
'D4': 24931,
'D5': 50533,
'D6': 0.5827135443687439,
'D7': [58, 92],
'D8': [161, 174, 4, 46, 169, 45, 169]},
'D1': -1492468095,
{'D2': [209, 104],
'D3': -0.28877612948417664,
'D4': 55933,
'D5': 60843,
'D6': -0.48056209087371826,
'D7': [236, 214],
'D8': [195, 186, 218, 31, 127, 227, 151]}]},
'B5': 18279488603664075046}}
Пример 2
Двоичные данные:
b'DDU\xb0{"\xef\x85\x9a\xfaY\x0cg\xf0\xc6\x86\x8d\xdd\xf5\x9c\x7f\x8d\x8b1'
(b'\xfdA\x9e\x00\x00\x00s\xdd?\xdd\xf5\xc4\xc3\xaa\x03\xa1\xbf\xa8\xd5\x94'
b"`\x1a\xb0\x00\x02\x00\x00\x00'?)\x8fq\xe6\x17O\xbd\xbf)\x94\xc1\x00\x02\x00"
b')\x9c\xf9\x96F\xa9q\x87Z\x90\xf6\xc9\xfa\xe5IL\xe0\xb3\x00\x04\x00\x00\x00L'
b'\xbf}\xdf\x0fFa\xe6\xaf\xbf\x14\x8f\x8e\x00\x02\x00P\xdc\x9c\xf3\xcc'
b'B\xab\xb1\xd3\xb3V\x1c\xf9\x8d\xf1\x85?4\xcd\xdf\x00\x00\x00+\x00\x00\x00R')
Результат разбора:
'A1': -5729947688764769703,
{'A2': 208138438,
'A3': {'B1': 9695649619760876939,
'B2': 12797,
'B3': 16798,
'B4': {'C1': -3192113028429647483,
'C2': 0.7062663435935974,
'C3': [{'D1': -1805641040,
'D2': [161, 191],
'D3': 0.6623449921607971,
'D4': 58903,
'D5': 20413,
'D6': -0.6624260544776917,
'D7': [168, 213],
'D8': [156, 249, 150, 70, 169, 113, 135]},
'D1': 1229775027,
{'D2': [90, 144, 246, 201],
'D3': -0.9916848540306091,
'D4': 18017,
'D5': 59055,
'D6': -0.5803154706954956,
'D7': [250, 229],
'D8': [220, 156, 243, 204, 66, 171, 177]}]},
'B5': 15942705253552728579}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x51 0x4a 0x48 0x55
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | int64 |
2 | int16 |
3 | uint32 |
4 | uint32 |
5 | Структура B |
6 | Адрес (uint16) структуры F |
7 | int64 |
Структура B:
Поле | Описание |
---|---|
1 | Массив адресов (uint32) структур C, размер 3 |
2 | uint16 |
3 | uint8 |
4 | uint16 |
5 | uint16 |
6 | Массив char, размер 5 |
Структура C:
Поле | Описание |
---|---|
1 | Структура D |
2 | Адрес (uint16) структуры E |
Структура D:
Поле | Описание |
---|---|
1 | int8 |
2 | int32 |
3 | uint8 |
Структура E:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint32 |
3 | int16 |
4 | int8 |
Структура F:
Поле | Описание |
---|---|
1 | int16 |
2 | Размер (uint16) и адрес (uint16) массива uint16 |
3 | Адрес (uint32) структуры G |
4 | int32 |
5 | Размер (uint16) и адрес (uint16) массива int16 |
6 | Массив int64, размер 6 |
Структура G:
Поле | Описание |
---|---|
1 | uint8 |
2 | int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'QJHU\xb2\xed\xb7\n\xda\xb7\x97c\xa3!\x8b\x9c\xc8=\xf1c\x05\x8bA\x00'
(b'\x00\x00R\x00\x00\x00c\x00\x00\x00H\xc5aB\xfdU~snlji}\x00\x927\n\xaf'
b'\x8e\xb8\xa1\xe0\xf7\r\x16\x86\x19\xf8\x08\x8cV9\x02\xe8D[:8\x00V\xe5\xf5'
b'\x96/[\xd1\x1a\x7f{k\xe8\x93\x15DI\x00\xa9\x9fR\xf2\x1f\xcb\xb9\xd8\x8b\x07'
b'\x04U\x07[\xd8Z\x00\x19\xd2a\xacDv\xca\xd0p\xcf\xbdV3\xe7\xcc\xe0\xce'
b'\xcb\xca?\x02\x00k\x00o\x00\x00\x00@[\x0eI\x06\x00q\x00\xec\x00\x88.\x92'
b'\xc1\x00\xf4=\x03\x96\xd3\x12\x03\x93\xa2\x8a\x82\xba`\x1d\xf6\xbf\xf3\xb0'
b'|\x8c\x0fJQ\x03\xddoN\xcfn\xfa\x14\xab\xcb]\xdaP9?\xe4Tp')
Результат разбора:
'A1': 7176406678348754354,
{'A2': 8611,
'A3': 1036557451,
'A4': 2332386289,
'A5': {'B1': [{'C1': {'D1': 57, 'D2': 1531242498, 'D3': 58},
'C2': {'E1': 3575, 'E2': 4162422294, 'E3': -29688, 'E4': 86}},
'C1': {'D1': 123, 'D2': 362014827, 'D3': 68},
{'C2': {'E1': 58710, 'E2': 1529845493, 'E3': 6865, 'E4': 127}},
'C1': {'D1': 7, 'D2': 1527207172, 'D3': 216},
{'C2': {'E1': 40873,
'E2': 3407868498,
'E3': -10055,
'E4': -117}}],
'B2': 50504,
'B3': 97,
'B4': 64834,
'B5': 32341,
'B6': 'snlji'},
'A6': {'F1': 16330,
'F2': [53785, 44129],
'F3': {'G1': 68, 'G2': 118},
'F4': 1225677632,
'F5': [-12086, -12432, 22205, -6349, -7988, -13362],
'F6': [-864478294865084180,
-6732033638594641091,
-882716395904007542,
-2521081987867050832,
-3770897197159199121,
8094345390487296605]},
'A7': -2260322615001729134}
Пример 2
Двоичные данные:
b'QJHU\x80cbU\xa6PO\xd4\xd8\x8f\xe4\xb4\xf5\xbd\xc9SUMA\x00\x00\x00R\x00'
(b'\x00\x00c\x00\x00\x00\x17!\xcd\xf5\xc5\x90gkqksh\x81\x00\xb4T\x86\x13'
b'%\xd6\xebty FG\xfa\x1dv\xc1\x1c\xe4\x14\x1b\xcao\x928\x00N\xe7%'
b'\xae\xdd\xbe\xa05qH$Kq\xa1\x9bI\x00?\x98\t%\xf2\xc9\xa7\xd3\xb6B'
b'\xc2\x12\x17\xe8\x82Z\x00\x91 \xb3\xce\xf2 b\xc9\x89N\x98\xb2\xfcmI\xf7\x1d'
b'R\xf0\x06:\xc3\xccf\x04\x00k\x00s\x00\x00\x00|\xb2\xa5\xc8\x06\x00u\x00\x08'
b'\r>vy\xc4\x07\xd2\xeb<\x0e$|\xc1\x9b\xc26\xf8b\xf9Ejc\xe6k\xeb\x8c\x1d\xb6'
b'%\x87\xc0\x16\x8b\xd8Ww\xc9\xb6\x02\xcd\x0f\xcc6CQ\x96\xbb')
Результат разбора:
'A1': -3148208939181382784,
{'A2': -28712,
'A3': 3186996452,
'A4': 1297437641,
'A5': {'B1': [{'C1': {'D1': -28, 'D2': 1875516180, 'D3': 146},
'C2': {'E1': 8313, 'E2': 502941510, 'E3': -16010, 'E4': 28}},
'C1': {'D1': 72, 'D2': -1586410716, 'D3': 155},
{'C2': {'E1': 59214, 'E2': 3202199077, 'E3': 13728, 'E4': 113}},
'C1': {'D1': 66, 'D2': -401141054, 'D3': 130},
{'C2': {'E1': 38975,
'E2': 3388089609,
'E3': -11353,
'E4': -74}}],
'B2': 8471,
'B3': 205,
'B4': 50677,
'B5': 26512,
'B6': 'kqksh'},
'A6': {'F1': 26316,
'F2': [8337, 52915, 8434, 51554],
'F3': {'G1': 137, 'G2': 78},
'F4': -928664964,
'F5': [-19816, 28156, -2231, 21021, 1776, -15558],
'F6': [-3312462974953845496,
-4423729470036362005,
-1845514573522470858,
-4573645432461399189,
195565148249295638,
-4929663392986427443]},
'A7': 8425062982656349364}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x41 0x43 0x53 0x50 0xa7
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | Адрес (uint16) структуры D |
Структура B:
Поле | Описание |
---|---|
1 | uint8 |
2 | int16 |
3 | double |
4 | Массив адресов (uint32) структур C, размер 4 |
Структура C:
Поле | Описание |
---|---|
1 | uint8 |
2 | Размер (uint16) и адрес (uint16) массива int32 |
3 | int8 |
4 | uint32 |
Структура D:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива int8 |
2 | Размер (uint32) и адрес (uint16) массива int32 |
3 | int64 |
4 | int64 |
5 | Размер (uint32) и адрес (uint16) массива int16 |
6 | int16 |
7 | float |
8 | int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'ACSP\xa7\xd6\xbc\xbb\xbf\xee\x1f\xbd\xd78\xc7\xe6\x00\x00\x00*\x00\x00\x00D'
(b'\x00\x00\x00V\x00\x00\x00h\x00\x83ob\xd0N\xad\xb6\xbc\x81\x9c\x00'
b'\x02\x00"\x96o\x0cz\xb4\x92M\x92t\n\xb7\xde`\x92\xa0\xffM\xf39L\x92'
b'\xaa\x00\x04\x004$\xed\xe5\x14e\xb0\n\xd2jB\xda\xa7\n\xd6\x00\x02\x00NQ'
b'\xd8\xad\x8c\xddL\xa2\xde\xef\x11\t\x9be\x07\x00\x02\x00`\xe8f\x18Z]3\x0c'
b'\x97\xe0\xfb\x19\x89Ah\xd7k\xed\xa7\xe9r\x952\x00\x05\x00r\x00'
b'\x00\x00\x02\x00w\xbf\xe1)\xb7\xaf\xe8\xb2\x0e\x01\t/\x85\xdeF\x89'
b'\xc6\x00\x00\x00\x02\x00\x7fV)\xbfO\xb2$w')
Результат разбора:
'A1': {'B1': 214,
{'B2': -17221,
'B3': -0.9413747027922426,
'B4': [{'C1': 156,
'C2': [1868746830, -1380533119],
'C3': -106,
'C4': 1863088820},
'C1': 170,
{'C2': [-1840409996, 179822176, -1834942643, -214348654],
'C3': 36,
'C4': 3991213157},
'C1': 214,
{'C2': [-1341468054, 1121625866],
'C3': 81,
'C4': 3635252445},
'C1': 7,
{'C2': [1285742319, 285842277],
'C3': -24,
'C4': 1712872029}]},
'A2': {'D1': [51, 12, -105, -32, -5],
'D2': [428425576, -680792665],
'D3': -4620365873798401522,
'D4': 74643120834644422,
'D5': [-5774, -27342],
'D6': 22057,
'D7': -0.8113119602203369,
'D8': 119}}
Пример 2
Двоичные данные:
b'ACSP\xa7\x99:S\xbf\xee\xf6U`IIl\x00\x00\x002\x00\x00\x00H\x00\x00\x00b'
(b'\x00\x00\x00x\x00\x93\xb17[\xf5\x18\x82}\x8d1\xdf\x02\xfe\x0b\xef~\x89c\x00'
b'\x04\x00"G\xc4\xcd\x98\xd9bR\xa1\xb78\xd8\xfc\xd4\xf4\xc51+#\x00\x03\x00<et5'
b'\xec^\xe2\x9d\xb3\xe6\x03\x8a\x11\xb6\xe1x\x1f\xdco\xed\x1a\xc2\xcc\x00'
b'\x04\x00R\xe4\x03\xe8\xd7] %\xbd\xc8\xff\xa1\x90\xb5E\xe5q{\x15\x00\x03\x00'
b'lb\xadQ\x8e.\x83\xc9\x9f\xdd`\xe3^O\x1fQ4\xe5Zh+\xb5Z\x00\x05\x00\x82\x00'
b'\x00\x00\x02\x00\x87\xcfT\xd9\xb6\x0c#\r\xc4\x8dy\x8f)L\xd8IE\x00\x00\x00'
b'\x02\x00\x8f\xec\xa3?\n\xf3\r\xb4')
Результат разбора:
'A1': {'B1': 153,
{'B2': 14931,
'B3': -0.9675700073806133,
'B4': [{'C1': 99,
'C2': [-1321772043, 411205005, 836698878, 200244873],
'C3': 71,
'C4': 3301808345},
'C1': 35,
{'C2': [1649582519, 953744596, -188403413],
'C3': 101,
'C4': 1949690974},
'C1': 204,
{'C2': [-492981274, 59380150, -512221220, 1877809858],
'C3': -28,
'C4': 65591133},
'C1': 21,
{'C2': [539344328, -6188875, 1172664699],
'C3': 98,
'C4': 2907803182}]},
'A2': {'D1': [-125, -55, -97, -35, 96],
'D2': [-480358625, 1362421082],
'D3': -3506938833903874620,
'D4': -8252407434634049211,
'D5': [26667, -19110],
'D6': -4957,
'D7': 0.5427711606025696,
'D8': -76}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x3a 0x4d 0x43 0x44 0x57
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint16) массива char |
2 | uint16 |
3 | Размер (uint32) и адрес (uint32) массива адресов (uint16) структур B |
4 | Размер (uint16) и адрес (uint16) массива char |
5 | int32 |
6 | Структура C |
7 | Адрес (uint16) структуры D |
Структура B:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint16 |
Структура C:
Поле | Описание |
---|---|
1 | int32 |
2 | int8 |
3 | uint16 |
4 | uint32 |
Структура D:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint32) массива int32 |
2 | int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b':MCDW\x03\x00\x00\x00*\x00\xfcU\x07\x00\x00\x00I\x00\x00\x00\x03\x00W'
(b'\x00\x8b\x82hN\r\x84\xe7\xb2\xb3\x7f6WZ\x95\x18n\x00nwr\xc5\xdb\x8b'
b'\xca \x00\xdd\x91\xd4 b\xc7\xb1,$\xa9)&\xf85\xf5\x9a\xd4#\x04\x8e\x87'
b'\xbd-\x001\x005\x009\x00=\x00A\x00E\x00unj\xf5\xca\xc4!\xf19,\x956\t\xf5R\ni'
b'Kt\x92\rS.\x05\x00\x00\x00Z\x00\x00\x00\xf8')
Результат разбора:
'A1': 'nwr',
{'A2': 22012,
'A3': [{'B1': 56261, 'B2': 51851},
'B1': 32, 'B2': 37341},
{'B1': 8404, 'B2': 51042},
{'B1': 11441, 'B2': 43300},
{'B1': 9769, 'B2': 13816},
{'B1': 39669, 'B2': 9172},
{'B1': 36356, 'B2': 48519}],
{'A4': 'unj',
'A5': 1315472011,
'A6': {'C1': -1293450227, 'C2': -77, 'C3': 13951, 'C4': 412441175},
'A7': {'D1': [566545141, -1792263695, 1391790390, 1951099146, 777194898],
'D2': -8}}
Пример 2
Двоичные данные:
b':MCDW\x04\x00\x00\x00*\x00?\xfa\x07\x00\x00\x00J\x00\x00\x00\x06\x00X'
(b'\x00h\xa9\xces\xc2\xdc\xcf^u:\x9d\xd8X\xa7Sf\x00hlmk\x8a\xa2#:\xdf?'
b'\x94\xc4\x04`\xcf\xa46^I\x1b\xf4\xb1I\x00d^\x97W\xfa\x14\xa1\x83.\x00'
b'2\x006\x00:\x00>\x00B\x00F\x00hocaov?\x93\x11>\xed\xfcn\x0b\x02\x00'
b'\x00\x00^\x00\x00\x00M')
Результат разбора:
'A1': 'hlmk',
{'A2': 64063,
'A3': [{'B1': 41610, 'B2': 14883},
'B1': 16351, 'B2': 50324},
{'B1': 24580, 'B2': 42191},
{'B1': 24118, 'B2': 6985},
{'B1': 45556, 'B2': 73},
{'B1': 24164, 'B2': 22423},
{'B1': 5370, 'B2': 33697}],
{'A4': 'hocaov',
'A5': 1942923624,
'A6': {'C1': 1590680770, 'C2': 117, 'C3': 40250, 'C4': 1403476184},
'A7': {'D1': [1041339199, 191823085], 'D2': 77}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xb4 0x48 0x4c 0x46
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint32) структуры B |
2 | int16 |
3 | float |
4 | Адрес (uint32) структуры C |
Структура B:
Поле | Описание |
---|---|
1 | int16 |
2 | int16 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива char |
2 | Размер (uint16) и адрес (uint32) массива адресов (uint32) структур D |
3 | double |
4 | Размер (uint16) и адрес (uint32) массива float |
5 | Структура E |
Структура D:
Поле | Описание |
---|---|
1 | uint8 |
2 | int64 |
3 | float |
4 | uint16 |
Структура E:
Поле | Описание |
---|---|
1 | uint64 |
2 | int32 |
3 | Массив uint32, размер 2 |
4 | uint64 |
5 | uint32 |
6 | int32 |
7 | Массив uint8, размер 4 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xb4HLF\x12\x00\x00\x00\t\x9f\xbc\xb1\x07\xbfF\x00\x00\x00\x12\xc5\xe4\xa5qd'
(b'\xc4Sr\x91\xc5\xa9\xf3s\xbd\xdf\xe0\x18\xbf\x1dt\x13?nc E\xcc\xfc\xc3'
b"\x9aw\xee>\xe6~\x18\x00\x00\x00'\x00\x00\x00d\x0c%?\x9a\x8eD?\x02\x00"
b'\x16\x00\x00\x00\x02\x006\x00\x00\x00\xec\x15\xde\xec\x93\xad\xe2?\x02\x00'
b'>\x00\x00\x00\x82\xb4\xf0\xfdg|\x02j&\xa3\xb7W\xe0\xe9\xd4\xefb\xc1\xb4\xd0'
b'\xb32\xc9I\xf9\xb6WT\xd6?8\xeb\xa2\xbc\xb4\x92[\xba J')
Результат разбора:
'A1': {'B1': -15086, 'B2': -23068},
{'A2': -24823,
'A3': -0.5300557613372803,
'A4': {'C1': 'qd',
'C2': [{'D1': 196,
'D2': -4795221267729780141,
'D3': -0.5971812605857849,
'D4': 29725},
'D1': 19,
{'D2': -4324356944914321857,
'D3': 0.46575623750686646,
'D4': 32486}],
'C3': 0.5836887003248967,
'C4': [0.6447203159332275, 0.7678009271621704],
'C5': {'E1': 7638804704057668738,
'E2': 1471652646,
'E3': [4023708128, 3501506914],
'E4': 6077527403960808115,
'E5': 3946332118,
'E6': -1833648990,
'E7': [91, 186, 32, 74]}}}
Пример 2
Двоичные данные:
b'\xb4HLF\x12\x00\x00\x00B\xa1\xe2\xc2\xe0>M\x00\x00\x00\xfe\x8a\xa8\xa9write_'
(b'\xa4\x99F\xcc\x18lC\x1e\xff7\x98\xbe#\xf5\xf8-\x9b\x00\xd6V(w\x0b\xad'
b'\xae\xeb>>\x7f\x1b\x00\x00\x00*\x00\x00\x00{\x91\xdd>\xf4\xd5\x00?\xee\x800'
b'\xbf\x05\x00\x16\x00\x00\x00\x02\x009\x00\x00\x00\xf0X\xd3D~\x8e\xc2'
b'\xbf\x03\x00A\x00\x00\x00A\xfbXoa\x8f\xd4\xdbQ\x1a\xf9\xb8z\x14\xf5/\x0c'
b'\x17\x95\xfds[\xce\xdc\xf6\xa8\x0f\xc9N\x8a\r\r\x8c\xc5@\xe8v\xcf \xab')
Результат разбора:
'A1': {'B1': -29954, 'B2': -22104},
{'A2': -24254,
'A3': 0.4389868378639221,
'A4': {'C1': 'write',
'C2': [{'D1': 95,
'D2': 2180705498339645860,
'D3': -0.2973022162914276,
'D4': 62755},
'D1': 248,
{'D2': 826173410068437805,
'D3': 0.46031704545021057,
'D4': 32574}],
'C3': -0.14497354851363964,
'C4': [0.43275055289268494, 0.5032646656036377, -0.6894673109054565],
'C5': {'E1': 15840443438011579201,
'E2': -1191634351,
'E3': [804590714, 4254406412],
'E4': 14487984304494107507,
'E5': 218991182,
'E6': -398408308,
'E7': [118, 207, 32, 171]}}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x55 0x4c 0x57 0x8
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | uint64 |
2 | int8 |
3 | Размер (uint16) и адрес (uint16) массива char |
4 | Массив адресов (uint16) структур B, размер 3 |
5 | int16 |
6 | Структура C |
Структура B:
Поле | Описание |
---|---|
1 | uint64 |
2 | float |
3 | int8 |
Структура C:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры D |
2 | Адрес (uint16) структуры E |
3 | uint8 |
4 | double |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | double |
3 | int16 |
Структура E:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива float |
2 | uint16 |
3 | float |
4 | Массив int32, размер 4 |
5 | Размер (uint32) и адрес (uint32) массива int32 |
6 | int64 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'ULW\x08\xbe\xe4EQ\x08\x8aQK,\x02\x00&\x00(\x005\x00B\x00\x8b\xa7O\x00s'
(b'\x00)<\x17\ne\xea\x18\xdf\xbfzm\xcb\xb53\x047\x81\x07=F1\xc0\xbe!1@\xde'
b'\xee\xd5"\xd0\x94\r\x12\xfe>4Hp\xdd\xbds\xef;\xd7\xe9\x95\x9a\xbe\xecG'
b'\xebh>\xdb\xeb<\xd8\xc8?\xab(]\xae\xed>\xdbDB?\x80R\x15>\xfcG\x12\xbf\x92'
b'*\xc38T\xa0\xad@\x04\x00[\x00\x00\x00G\x92\xb5\x7ft\xbf\x19\xd7[\x8eV'
b'\x0e7\x9d\xc7Jh\x913\xcf\xa9&\x02\x00\x00\x00k\x00\x00\x00\\&\x90\x8aW'
b'\x84\x9b\xb5')
Результат разбора:
'A1': 5427270794286064830,
{'A2': 44,
'A3': 'zm',
'A4': [{'B1': 4397625634444260811, 'B2': -0.3753759264945984, 'B3': 33},
'B1': 10723109015000072241, 'B2': 0.49623146653175354, 'B3': 52},
{'B1': 15509253022166118472, 'B2': -0.3019249737262726, 'B3': -20}],
{'A5': -22645,
'A6': {'C1': {'D1': -5305, 'D2': 0.19409905926157767, 'D3': 10411},
'C2': {'E1': [0.46422091126441956,
0.7588631510734558,
0.14582252502441406,
-0.5714108943939209],
'E2': 37447,
'E3': -0.9550736546516418,
'E4': [-1906583783, -1657336234, -1855436089, 648662835],
'E5': [952314514, 1085120596],
'E6': -5360545419932719524},
'C3': 41,
'C4': -0.48589572779779977}}
Пример 2
Двоичные данные:
b'ULW\x08Y\x08s~\xf4c\x9b7q\x03\x00&\x00)\x006\x00C\x00\xd0\xa3P\x00x'
(b'\x00\x93\x18\xaa\xccu\x9d7\xdb\xbftlb??|\x01Hy\xa7\xa1D\xc7\xe7=hh}'
b'\xdc`\x1e\xdac\xca\\\xc2\x12\xbf\xe6\xce\x88U3g0\xd3\xc2\xb9\xd5\xf6\xbc\x0e'
b'=\xcf\xb4{1\xfe\xb5W\xd4?\x03\r\xd29\x8f\xbbgyY\xbe\x90n\xd0\xbe\x84m\xbe>'
b'!g\xb7\xab\xe8c\x1fM\x9b\xfcg<\x04\x00\\\x00\x00\x00Q\xd8\xb1kG>'
b'\x1a\x8d\x1ehP\xe0\xfc0\x9eH\x93~\x182\xf2!\x03\x00\x00\x00l\x00\x00\x00'
b's\x11\xac\xc1\xfc\xff\x1c\xd3')
Результат разбора:
'A1': 4006906195220826201,
{'A2': 113,
'A3': 'tlb',
'A4': [{'B1': 11648412311386603327, 'B2': 0.11317303776741028, 'B3': 104},
'B1': 14583739842364734824, 'B2': -0.5732781887054443, 'B3': -26},
{'B1': 14038617683244976334, 'B2': -0.030131207779049873, 'B3': 14}],
{'A5': -23600,
'A6': {'C1': {'D1': -12483, 'D2': 0.3178534490925202, 'D3': 3331},
'C2': {'E1': [-0.004370906390249729,
-0.2123771756887436,
-0.40709352493286133,
0.3719292879104614],
'E2': 55377,
'E3': 0.19474674761295319,
'E4': [1746832666, 821878864, 2123581598, 569520664],
'E5': [-1414043871, 1293902824, 1013447835],
'E6': -3234428971312737933},
'C3': 147,
'C4': -0.42526947501997503}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x52 0x49 0x58
, за которой следует структура A.
Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | int64 |
2 | Адрес (uint32) структуры B |
3 | uint64 |
Структура B:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint16) массива адресов (uint16) структур C |
2 | uint16 |
3 | int64 |
4 | Массив int8, размер 4 |
5 | int16 |
Структура C:
Поле | Описание |
---|---|
1 | int16 |
2 | Размер (uint32) и адрес (uint16) массива uint64 |
3 | uint64 |
4 | Структура D |
5 | float |
Структура D:
Поле | Описание |
---|---|
1 | uint64 |
2 | Размер (uint32) и адрес (uint16) массива float |
3 | int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'RIXP\xa4\xe7TD\xce\x85\x8d\xa5\x00\x00\x00\xdd\xf0\x80\x1dcx\x9a\xdb\xc2'
(b'0.\x85\x9d\x9f-T\xb5\xcam\x13\xf7\xb2@\xfb/\x9aR\xbf\x13\\\xe1\xbd\xaf'
b"\x8a_\xbf\x96'\n>\xae\xbf\xf0>\x84\xf8\x02\x00\x00\x00\x17\x00\x93"
b"x\xcf\x1e\xd1\x99\x1a\xa5\xa4\xfb\xd5\xf1\x96\x94%\x94\x05\x00\x00\x00'"
b'\x00\xdck\x87\xbd=\x00\xfa%\x82\xbe\xfe\x98\x19\xb8\r\xfe\xa5\x80\xbc'
b'\x9e2\x9d\xdb>>B\x0f\xe6>\x8f\x93v\xbfS\x01.\xbfD\x02\x02\x00\x00\x00'
b'^\x00\xab\xac\xeb\x8d\\\n\x86\x15=n\xadV\xf0A\xceh\x04\x00\x00\x00n\x00'
b'$\xd1\xb6\xfb>;\x00~\x00\x02\x00\x00\x00\xa1\x00\x9c^?\x13\x7f\xec#\x02\xde'
b'\x12\xc8\xa1\xaa<Mp')
Результат разбора:
'A1': -8248960349581630384,
{'A2': {'B1': [{'C1': -1916,
'C2': [6065679772031004866, 18104667276282022581],
'C3': 11896990489096714387,
'C4': {'D1': 10675101867774966692,
'D2': [-0.8226651549339294,
-0.11003889888525009,
-0.8732098937034607,
0.13491663336753845,
0.4702123999595642],
'D3': -36},
'C5': 0.09254344552755356},
'C1': 580,
{'C2': [1844504141588986368, 3647560008943406520],
'C3': 1550938514310016171,
'C4': {'D1': 7552046125649063485,
'D2': [0.1863846331834793,
0.44933515787124634,
-0.9631890654563904,
-0.6797077059745789],
'D3': 36},
'C5': 0.49162915349006653}],
'B2': 24220,
'B3': 1359526490827330367,
'B4': [-56, -95, -86, 60],
'B5': 28749},
'A3': 15824092607811743965}
Пример 2
Двоичные данные:
b'RIXS\x18:ND\x83\x88\x10\xa1\x00\x00\x00\xccS\xcc\xa6\t\x90\xe50_\xaeyQ\x7f'
(b'\xb2\x9f\x1a2\x18\xa0\x16$J\xfd\xd7\x18\xdcB=s\x84c?\x9a\x8a\xe0\xbe\x0f'
b'yr\xbf\x18\xbe*?x\xe0\x02\x00\x00\x00\x17\x00\xcb\xa8\xab\x82\xd4'
b"\x1e\xbd\xe3\x850\xd0J\x18}\xc2\x93\x05\x00\x00\x00'\x00\x8c\xf8>C?\x89\x9a"
b'B/J\xe6\x9c7\x9a9\xfcG\xe0\xe3\xcd\xc6\x1c\xaf\x01?g\x7f[?hzp=\xea\xad'
b'\x02\x00\x00\x00^\x00~a\x91\xc8S9\xef\x9e,j\x1aW\xe0\xd2\xbc\x00\x03\x00'
b'\x00\x00n\x00|o*a\xbf;\x00z\x00\x02\x00\x00\x00\x9d\x00q\ng\x95\xe1'
b'\xd7\x02\x83Wk\x8a\x8f{\xd2,\xc5')
Результат разбора:
'A1': 1191346430832941139,
{'A2': {'B1': [{'C1': -8072,
'C2': [1918448226180640351, 15563677406121170994],
'C3': 16410306515282143435,
'C4': {'D1': 10647210012345118853,
'D2': [0.04757317900657654,
0.8887397646903992,
-0.4385574460029602,
-0.9471597075462341,
0.6669631004333496],
'D3': -116},
'C5': 0.7626795768737793},
'C1': -21014,
{'C2': [4007330974747761289, 14325356542155307418],
'C3': 11452435409436500350,
'C4': {'D1': 53149156597459500,
'D2': [0.5065782070159912,
0.8574127554893494,
0.0587104856967926],
'D3': 124},
'C5': -0.8795537352561951}],
'B2': 2673,
'B3': 7734794933267174759,
'B4': [-118, -113, 123, -46],
'B5': -15060},
'A3': 3523380654614795212}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x5f 0x5a 0x49 0x55
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | int64 |
3 | Адрес (uint16) структуры D |
4 | int64 |
5 | Адрес (uint16) структуры E |
6 | int8 |
7 | int16 |
8 | uint64 |
Структура B:
Поле | Описание |
---|---|
1 | int8 |
2 | int8 |
3 | Размер (uint16) и адрес (uint16) массива char |
4 | Размер (uint32) и адрес (uint32) массива структур C |
5 | double |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива int8 |
2 | uint16 |
3 | Массив uint8, размер 5 |
4 | int8 |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | int8 |
3 | uint16 |
Структура E:
Поле | Описание |
---|---|
1 | double |
2 | int16 |
3 | Размер (uint32) и адрес (uint32) массива int8 |
4 | uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'_ZIU\x8b\x00\xcb<\x1b\xb7gd\x94\xd4\xa1\x00\xeb ^\xb4\xc4U\xe8\x81'
(b"\xa8\x00\x9d1\x7f\xac\x97\x01*'\x9f5\xd8ykd\xb9\xce\x9d=\xf9m6\xceI6\x13\x08"
b"\x98G\xc4\x03\x00(\x00\x00\x00\xf0\xca\x11\xe2\xdfn\xe5'\x02\x00+"
b'\x00\x00\x00\xde\xf2\'\xb8ESj"\x02\x00-\x00\x00\x00\xaeqX\xf3u\x13\xe0'
b'\x16\x03\x00/\x00\x00\x00ovt\xf3$T|\xc4\x03\x002\x00\x00\x009HV\xef`\x97\xf5'
b'\xcc\x02\x005\x00\x00\x00\x94\x1b\x7f\xbc\xa2\x93\x8fA\x15\x83\x03\x00%'
b'\x00\x06\x00\x00\x007\x00\x00\x00\xf4\x14\x98w\xcfG\xd5\xbf\x02W\x18'
b'\x9d\x82\xb6\x14\xe0\x82\xf8\x1e|\x82\xcd\xbf\xba\xaa\x02\x00'
b'\x00\x00\xa6\x00\x00\x00V\xbbB\xfe')
Результат разбора:
'A1': {'B1': 21,
{'B2': -125,
'B3': 'ykd',
'B4': [{'C1': [-71, -50, -99],
'C2': 51952,
'C3': [17, 226, 223, 110, 229],
'C4': 39},
'C1': [61, -7],
{'C2': 62174,
'C3': [39, 184, 69, 83, 106],
'C4': 34},
'C1': [109, 54],
{'C2': 29102,
'C3': [88, 243, 117, 19, 224],
'C4': 22},
'C1': [-50, 73, 54],
{'C2': 30319,
'C3': [116, 243, 36, 84, 124],
'C4': -60},
'C1': [19, 8, -104],
{'C2': 18489,
'C3': [86, 239, 96, 151, 245],
'C4': -52},
'C1': [71, -60],
{'C2': 7060,
'C3': [127, 188, 162, 147, 143],
'C4': 65}],
'B5': -0.33250796012028094},
'A2': -3128765444499227445,
'A3': {'D1': 22274, 'D2': 24, 'D3': 33437},
'A4': -9085917944891957013,
'A5': {'E1': -0.2305445815300322,
'E2': -21830,
'E3': [-74, 20],
'E4': 4265786198},
'A6': -99,
'A7': 32561,
'A8': 15579533476515387308}
Пример 2
Двоичные данные:
b'_ZIU\x8a\x00\tOU\x98eM\x8f^\xa0\x00\xab\xd2\xaf/\xdaVRu\xa7\x00m\x08'
(b'\xbb"\xf9\xc9\xdd\xa3fJ!sup\x834\xdb\n}\xed~T\xda \x19\x19\xfb6\x02\x00'
b'(\x00\x00\x00\xc8\x12Om2\x0f\x89\xfc\x03\x00*\x00\x00\x00`X\x00\xa5\x80?'
b'\x03\x96\x02\x00-\x00\x00\x004\r\xd0H\xb7#F,\x02\x00/\x00\x00\x00?,'
b"\xa0\xf6\x14\xc3H\x8e\x02\x001\x00\x00\x00\xfc\x1b'\x0c\xbb+\xd8<"
b'\x03\x003\x00\x00\x00\x882\x88\xfe\r\xf7Bn\x0b\x15\x03\x00%\x00'
b'\x06\x00\x00\x006\x00\x00\x00\x00\x00\x9f\x86\xa5\x90\xe2\xbf\xbdmA\x00'
b'{2\xa6\x00A4\xb2\xe3t\xc7?\xf2\xbc\x02\x00\x00\x00\xa5\x00\x00\x00\xe8\x8dc'
b'\xf2')
Результат разбора:
'A1': {'B1': 11,
{'B2': 21,
'B3': 'sup',
'B4': [{'C1': [-125, 52],
'C2': 4808,
'C3': [79, 109, 50, 15, 137],
'C4': -4},
'C1': [-37, 10, 125],
{'C2': 22624,
'C3': [0, 165, 128, 63, 3],
'C4': -106},
'C1': [-19, 126],
{'C2': 3380,
'C3': [208, 72, 183, 35, 70],
'C4': 44},
'C1': [84, -38],
{'C2': 11327,
'C3': [160, 246, 20, 195, 72],
'C4': -114},
'C1': [32, 25],
{'C2': 7164,
'C3': [39, 12, 187, 43, 216],
'C4': 60},
'C1': [25, -5, 54],
{'C2': 12936,
'C3': [136, 254, 13, 247, 66],
'C4': 110}],
'B5': -0.5801570538824308},
'A2': 6813749859977613065,
'A3': {'D1': 28093, 'D2': 65, 'D3': 31488},
'A4': 8453914945630753451,
'A5': {'E1': 0.18325468255398647,
'E2': -17166,
'E3': [50, -90],
'E4': 4066610664},
'A6': 109,
'A7': -17656,
'A8': 2398842605514914082}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4e 0x59 0x5a 0x53
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | float |
2 | uint32 |
3 | float |
4 | int16 |
5 | Структура B |
Структура B:
Поле | Описание |
---|---|
1 | uint32 |
2 | uint16 |
3 | uint64 |
4 | uint64 |
5 | Массив адресов (uint32) структур C, размер 4 |
6 | Структура D |
7 | int32 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива uint16 |
2 | uint32 |
Структура D:
Поле | Описание |
---|---|
1 | uint64 |
2 | Размер (uint32) и адрес (uint32) массива uint16 |
3 | Размер (uint32) и адрес (uint16) массива int8 |
4 | int16 |
5 | int32 |
6 | int8 |
7 | uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'NYZS\xbfb\xc7\x9dE\x16K\xf2>\x9c\xabzEB\xd5\xee\xf3[\x0c\xe8ss\xbc\xf1'
(b'\x9dv\xedJR\xfe\x14\xaf\xfd\x13U \x00\x00\x00^\x00\x00\x00n\x00\x00\x00|'
b'\x00\x00\x00\x8ck\xbc~\x07\xc4\x87\xccr\x00\x00\x00\x02\x00\x00\x00\x96'
b'\x00\x00\x00\x04\x00\x9a/u\x96\x8d\xf6\x14\x19e\xef\xa2\xe7Ry9\x16X\x00\x02'
b'\x00\x00\x00Z/\xd5\x1dO\x81\x19\xde\x8a\xdd\x1a\x00\x03\x00\x00\x00h'
b'\x1fU\xf7\xd6\x88\xf6\xb7\x84\x00\x02\x00\x00\x00x7X\xda\xba\x10\xe1'
b'\x1b\xd3\xc5\x04\x00\x03\x00\x00\x00\x86o\x0e\xc9-\xfe\xa7Z\xe4\xa9\xb0'
b"'\xbe")
Результат разбора:
'A1': -0.8858583569526672,
{'A2': 1159089138,
'A3': 0.30599576234817505,
'A4': 17730,
'A5': {'B1': 3589206875,
'B2': 3304,
'B3': 8319200682598395210,
'B4': 5980240101292332320,
'B5': [{'C1': [31033, 5720], 'C2': 802495823},
'C1': [33049, 56970, 56602], 'C2': 525727702},
{'C1': [35062, 46980], 'C2': 928570042},
{'C1': [4321, 7123, 50436], 'C2': 1863239981}],
{'B6': {'D1': 7763218429506997362,
'D2': [65191, 23268],
'D3': [-87, -80, 39, -66],
'D4': 12149,
'D5': -1769081324,
'D6': 25,
'D7': 101},
'B7': -274536622}}
Пример 2
Двоичные данные:
b'NYZS?h\x18\xecV\xcd3\x8a\xbfK\x11\xeam\x1e\x99\xf7\x0e\x0c\xd3\x8a'
(b'\xe8\xb1\x8f\xaa]\x15\xd7\x03o\x111\xf2J\xc7\xc9\xd2\x00\x00\x00`'
b'\x00\x00\x00n\x00\x00\x00|\x00\x00\x00\x8aTS2\xb7\x91\xba-\xce'
b'\x00\x00\x00\x03\x00\x00\x00\x94\x00\x00\x00\x03\x00\x9a\xd1\xe3E<c\xd8'
b'lC\xcf\x0c\xe5\x97WU6\x95\x1d\xed\x00\x03\x00\x00\x00Z\x13q\xef\xaaa7'
b'\xb4\xb9\x00\x02\x00\x00\x00jb\xbe[\xeb{\x8d/\x14\x00\x02\x00\x00'
b'\x00x\x17\x84E#;{/\xa4\x00\x02\x00\x00\x00\x86\x8d\xa4\xa3\xa7^\xb9\xec4'
b'\xe1 \x8e\x01u')
Результат разбора:
'A1': 0.906630277633667,
{'A2': 1456288650,
'A3': -0.7932420969009399,
'A4': 27934,
'A5': {'B1': 2583105036,
'B2': 54154,
'B3': 16767340849545991939,
'B4': 8003232929520536018,
'B5': [{'C1': [22357, 13973, 7661], 'C2': 326234026},
'C1': [24887, 46265], 'C2': 1656642539},
{'C1': [31629, 12052], 'C2': 394544419},
{'C1': [15227, 12196], 'C2': 2376377255}],
{'B6': {'D1': 6076256086258232782,
'D2': [24249, 60468, 57632],
'D3': [-114, 1, 117],
'D4': -11805,
'D5': 1161585624,
'D6': 108,
'D7': 67},
'B7': -821238377}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x59 0x4f 0x54 0x4c
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | Структура D |
3 | float |
4 | float |
5 | uint32 |
Структура B:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint32) массива char |
2 | double |
3 | Размер (uint16) и адрес (uint16) массива структур C |
Структура C:
Поле | Описание |
---|---|
1 | int32 |
2 | uint16 |
3 | int8 |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | Массив double, размер 2 |
3 | int32 |
4 | Массив uint8, размер 4 |
5 | int8 |
6 | float |
7 | Структура E |
Структура E:
Поле | Описание |
---|---|
1 | int16 |
2 | int64 |
3 | int32 |
4 | uint32 |
5 | Размер (uint16) и адрес (uint32) массива int8 |
6 | float |
7 | int8 |
8 | int64 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'YOTLf\x00\xe3vf9\xcc\xec\x03\xe2\xe9?0\xcd\x80\xe1Yn\xdf\xbf\xaa\x96q\xea'
(b'\xa6\xbc\xffB\xfaJ\xe3Z=}\xafh\xa28\x96\xef,\xe8\x9d\xb8\xed\x11\xc8('
b'MF\x13\x06\x00x\x00\x00\x00\xfd\x8f\x00?\xff\x94-c\x0cZ&\x86\xce\xed\xe4'
b'[\xbf\x8f6\x9d\xbe\xcf\xe3\xa1\xcblx\x1c\x80\xeb}\x94\x06Yv\xd1\xec\xe7\xeb'
b'\xc5;\x02\x00V\x00\x00\x00l\xf8\xd3?X\x19\xed\xbf\x02\x00X\x00\xaf\x1fUF'
b'\xff%')
Результат разбора:
'A1': {'B1': 'lx',
{'B2': -0.9093438383713539,
'B3': [{'C1': 2112585756, 'C2': 1684, 'C3': 89},
'C1': -403910282, 'C2': 50667, 'C3': 59}]},
{'A2': {'D1': 30435,
'D2': [0.8088397622066565, -0.4911102964571965],
'D3': -361654614,
'D4': [166, 188, 255, 66],
'D5': -6,
'D6': 0.053439415991306305,
'D7': {'E1': -20611,
'E2': -7068350207628893592,
'E3': -938349128,
'E4': 323374376,
'E5': [-81, 31, 85, 70, -1, 37],
'E6': 0.5021970868110657,
'E7': -1,
'E8': -3565119886820430444}},
'A3': -0.8589618802070618,
'A4': -0.30705687403678894,
'A5': 3416384463}
Пример 2
Двоичные данные:
b'YOTLn\x00rx\x08\xcd\x86\x97\xbdN\xeb?\xc4xz\n\t\xda\xe6?]\xfb\xe2\x82'
(b'(\x89}\xc5\x94\xc8\x1a\x7f;\r\x98n@\xc7\xe9\x97\xdb\xbf\xe4\xdd\xce\x1e&\xcc'
b'|\x85,\x03\x00\x80\x00\x00\x00\xbdM#=\xbd\xe4D+\xbf\x9et.\x81B\xc3\x11?\xbf5'
b'<=!\x15|\x10hkd\xb5|\xab\x84\rS\xbb\x9c\xf9\xd20\xc5$\xc8\x959UD\x9b'
b'id\x03\x00V\x00\x00\x00\x04\xbe\xae\xae\xb0s\xdd?\x03\x00Y\x00\x02A\x85')
Результат разбора:
'A1': {'B1': 'hkd',
{'B2': 0.46018616732450845,
'B3': [{'C1': -2069136203, 'C2': 21261, 'C3': -69},
'C1': 819132828, 'C2': 9413, 'C3': -56},
{'C1': 1146435989, 'C2': 27035, 'C3': 100}]},
{'A2': {'D1': 30834,
'D2': [0.8533618888381236, 0.7141156391769745],
'D3': -2099053731,
'D4': [40, 137, 125, 197],
'D5': -108,
'D6': 0.003892587497830391,
'D7': {'E1': -26611,
'E2': -1963609467001552786,
'E3': 639553245,
'E4': 746945740,
'E5': [2, 65, -123],
'E6': 0.03986905887722969,
'E7': -67,
'E8': -9138238368727218972}},
'A3': 0.5693856477737427,
'A4': 0.04594969376921654,
'A5': 276567329}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x48 0x58 0x44 0x55 0x6d
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | uint8 |
3 | Адрес (uint16) структуры C |
4 | Структура E |
Структура B:
Поле | Описание |
---|---|
1 | int32 |
2 | double |
3 | int64 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива структур D |
2 | int8 |
3 | Массив uint16, размер 3 |
4 | uint16 |
5 | int64 |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | Массив uint8, размер 7 |
Структура E:
Поле | Описание |
---|---|
1 | uint8 |
2 | int16 |
3 | Массив int16, размер 6 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'HXDUm\xcb\x88v\x93?\xdc9 ?9i\xd4\xb7 \xad \x91\xbd\nN\x93\x00j\xd1S\x85\x8e'
(b'5\x86\xf9\xc5\xe3.\xb2Z\xa6b\xb2\xc2\xe0\xb0-\x1a\x05\xa3k\x07H\xa6->'
b'\x91\x84\xfc\x91GG\xe1RId\xc1\xcc\xc6\xdc\x8a\xb2w\x01\x84\x17dq\x96Y'
b'\x9e1\xbb\x93\xec@Y\xf4A/\x19v\xca9\xa2u\xdaj[7\xc7\x17VQ\x18\x9e\x00\x07'
b'\x00+\xa8\xca>\xa1\x94\xbd\x08\x14=kU\x91\x7f\x18E\xae\xad')
Результат разбора:
'A1': {'B1': -880249197,
{'B2': 0.44098669218297215,
'B3': -5251006810118354354},
'A2': 147,
'A3': {'C1': [{'D1': -15648, 'D2': [176, 45, 26, 5, 163, 107, 7]},
'D1': 18598, 'D2': [45, 62, 145, 132, 252, 145, 71]},
{'D1': 18401, 'D2': [82, 73, 100, 193, 204, 198, 220]},
{'D1': -30030, 'D2': [119, 1, 132, 23, 100, 113, 150]},
{'D1': 22942, 'D2': [49, 187, 147, 236, 64, 89, 244]},
{'D1': 16687, 'D2': [25, 118, 202, 57, 162, 117, 218]},
{'D1': 27227, 'D2': [55, 199, 23, 86, 81, 24, 158]}],
{'C2': -88,
'C3': [51774, 41364, 48392],
'C4': 5181,
'C5': 7734247910132788909},
'A4': {'E1': 209,
'E2': 21381,
'E3': [-29131, -30983, -14877, 11954, 23206, 25266]}}
Пример 2
Двоичные данные:
b'HXDUm0\xd9\x8cF\xbf\xef\xc5\x86\xc7\x9c\x11r`|,\x95;s\xf3\xe8W\x00XE]V\xa6'
(b'\x90\x8dc\xff\x85&o\xc8\xa6\xb1\x02Xg\x12\x9f@\xea\xb9\xd4\xbe\xb7\x1d\xadG'
b'\x1fr~\xfaTP]\x95\x06hK\x9a\xd5\xa3\x04\xfc\x02\x04\x89\xf3\xfb\xb0\xbd\xbc'
b'\x92?\xd5/~W\xbf\xfe\x00\x05\x00+\x12\xc8\xe3\x83\x10\r\xca\rw\x18\x83\xc4'
b'\xa1\x85\xd5\xdf\x14')
Результат разбора:
'A1': {'B1': 819563590, 'B2': -0.9928621195436291, 'B3': 6952480944212407272},
{'A2': 87,
'A3': {'C1': [{'D1': 22631, 'D2': [18, 159, 64, 234, 185, 212, 190]},
'D1': -18659, 'D2': [173, 71, 31, 114, 126, 250, 84]},
{'D1': 20573, 'D2': [149, 6, 104, 75, 154, 213, 163]},
{'D1': 1276, 'D2': [2, 4, 137, 243, 251, 176, 189]},
{'D1': -17262, 'D2': [63, 213, 47, 126, 87, 191, 254]}],
{'C2': 18,
'C3': [51427, 33552, 3530],
'C4': 3447,
'C5': 1766471676873531156},
'A4': {'E1': 69,
'E2': 23894,
'E3': [-22896, -29341, -123, 9839, -14170, -20222]}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x5a 0x44 0x47 0xc
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | uint16 |
2 | uint8 |
3 | Адрес (uint16) структуры B |
4 | Размер (uint16) и адрес (uint16) массива uint64 |
5 | uint8 |
Структура B:
Поле | Описание |
---|---|
1 | Адрес (uint32) структуры C |
2 | float |
3 | uint8 |
4 | Структура F |
5 | int32 |
Структура C:
Поле | Описание |
---|---|
1 | uint32 |
2 | Массив адресов (uint32) структур D, размер 2 |
3 | uint64 |
4 | Адрес (uint32) структуры E |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | uint16 |
3 | int16 |
4 | int8 |
Структура E:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива int16 |
2 | uint8 |
3 | uint64 |
4 | uint32 |
5 | uint8 |
6 | Размер (uint16) и адрес (uint16) массива int8 |
Структура F:
Поле | Описание |
---|---|
1 | uint32 |
2 | double |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'ZDG\x0cM\x14\xbdS\x00\x02\x00l\x00\x81<z\xb6\xdd\x14"\x03R\xabV9\x89Rr'
(b'2\x95\xba\x93\xbe+\xe07\x8b\x03\x00\x1c\x00,\xaa\xcdf\xfb\xb1\xb3'
b'\\\x15\x03\xb5/X\xc6\x03\x00"\x00!\xe4\xab;\x0e\x00\x00\x00\x15'
b'\x00\x00\x00\xc0+\x0c2\n\x9a\x8a\x0b%\x00\x00\x00;\x00\x00\x00\xec\xbak?"'
b'6\xbb$\xaa\xc4\xa1R|B\xf9\xee?\xd0\xc6\t\xbd\xbe\xd1\xdd\xdd\x97\xc6\xb2O'
b'\x06\xa5\t\x1c\x9e\xa9J\x1e')
Результат разбора:
'A1': 5197,
{'A2': 189,
'A3': {'B1': {'C1': 1001120801,
'C2': [{'D1': 31292, 'D2': 56758, 'D3': 8724, 'D4': 3},
'D1': -21678, 'D2': 14678, 'D3': 21129, 'D4': 114}],
{'C3': 831646449783286720,
'C4': {'E1': [-27342, -27718, 11198],
'E2': 44,
'E3': 1539302749662268842,
'E4': 1479521539,
'E5': 198,
'E6': [-32, 55, -117]}},
'B2': 0.920820951461792,
'B3': 34,
'B4': {'F1': 2854533942, 'F2': 0.9679272106341661},
'B5': -1123432752},
'A4': [5742870830415466942, 2182743465954747654],
'A5': 129}
Пример 2
Двоичные данные:
b'ZDG\x0c=x\xbdT\x00\x03\x00m\x00o}\x1c/a\xe7\xf1N]\xe2Tv+;@?\xf9\x9by'
(b'\xd2\xf2GZ\x1c\xc4\x04\x00\x1c\x00\xb1\xce\xfb\xe5\xc9\xe1\xd0\xb89\xb1'
b"\xf4')\xad\x02\x00$\x00\xe3e\x07\x9e\x0e\x00\x00\x00\x15\x00\x00\x00"
b'\xd8\xba\xc6\xa5\x97\xc6i\xe0&\x00\x00\x00<\x00\x00\x00\xd5\xea\x13>'
b'\x85l\xb0^\xc9@0\xf7{\xad\x95\xd4\xbfI\xbd\x8d\xcfs=\xae\xac\xff\xa20;W\xdcO'
b'\xca|\x13\xa1\xe6\xe3\xf1\x8f\x96\x99(kH')
Результат разбора:
'A1': 30781,
{'A2': 189,
'A3': {'B1': {'C1': 2651284963,
'C2': [{'D1': 7293, 'D2': 24879, 'D3': -3609, 'D4': 78},
'D1': -7587, 'D2': 30292, 'D3': 15147, 'D4': 64}],
{'C3': 16170674291674102488,
'C4': {'E1': [-1729, 31131, -3374, 23111],
'E2': 177,
'E3': 4159303924050164686,
'E4': 690484401,
'E5': 173,
'E6': [28, -60]}},
'B2': 0.14445050060749054,
'B3': 133,
'B4': {'F1': 3378425964, 'F2': -0.3216356001473777},
'B5': -812794551},
'A4': [4265088066117320051, 16618585526664944727, 5218309233359974883],
'A5': 111}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x44 0x59 0x59 0x58
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | int16 |
2 | Размер (uint32) и адрес (uint16) массива структур B |
3 | int64 |
4 | Структура C |
5 | int64 |
6 | uint8 |
7 | double |
Структура B:
Поле | Описание |
---|---|
1 | int16 |
2 | uint16 |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива char |
2 | Адрес (uint32) структуры D |
3 | uint32 |
4 | Массив uint16, размер 4 |
5 | int64 |
6 | Массив int8, размер 3 |
7 | float |
Структура D:
Поле | Описание |
---|---|
1 | float |
2 | float |
3 | uint32 |
4 | Размер (uint16) и адрес (uint32) массива int16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b"DYYXZ'\x00\x00\x00\x07\x00H\xa9,\xb7e\xc5\xcc\xba\xc5\x00\x03\x00d"
(b'\x00\x00\x00q\xe9\xc6\xf6\x11H\xd58;\x7fN\xbb\x1eOS\xe7\xf9V\x96\xac\xf8'
b'\x15\x84q>\xe4\xcehF=B\x10\xd1\xdd,rr?\xde\xb7\x02\x81\xef\x94\xec'
b'\xc2\xd5G\xf4\xd3\xfc\xbbi\xcaTp\xf6L7\xd1\xa1\x86\x90F\x166\xc6\xe5\x93'
b'\xd1T\x9f\xcelpy]\x7f\x00\xe0d^\xdf\x1aTH>v\xcc\x84\xbe$\x8d4dk!'
b'\xa5\x00\x05\x00\x00\x00g')
Результат разбора:
'A1': 23079,
{'A2': [{'B1': -15659, 'B2': 18420},
'B1': -11268, 'B2': 47977},
{'B1': -13740, 'B2': 28918},
{'B1': 19511, 'B2': 53665},
{'B1': -31088, 'B2': 17942},
{'B1': 14022, 'B2': 58771},
{'B1': -11948, 'B2': 40910}],
{'A3': -6256424134586352955,
'A4': {'C1': 'lpy',
'C2': {'D1': 0.2410145401954651,
'D2': -0.1606948971748352,
'D3': 1684742565,
'D4': [23935, 224, 25694, -8422, 21576]},
'C3': 3922130449,
'C4': [18645, 14395, 32590, 47902],
'C5': 5716167410148879608,
'C6': [21, -124, 113],
'C7': 0.4468872547149658},
'A5': 5061274196242148466,
'A6': 114,
'A7': 0.47992003144311357}
Пример 2
Двоичные данные:
b'DYYXRT\x00\x00\x00\x06\x00H\xad[S?\xb4>\xee\xcf\x00\x02\x00`\x00\x00\x00f'
(b'\xde\x96\x1d~\xd10\xea\xcb!\xa3\x15\xcd\xae\xff[Q\xb3\xc6\xff\x9c'
b'\x1aJ\xf2\xbf_\\W\xd9\xcb\x7fum<D\xe5V\xbf\xd6\xcc\x88\xeb\xbe"8'
b'\x1a\xba\x18\xfb\xb1\x8a\x7f.\xcf\xca\x05p\xea\x87r\x98\xd0&\t\xc4'
b'\xcd\xd9\x80\x95raN\x95\xfd\xb8<\xad\x97\xac\xbe\xdc\xe9c\xe9R'
b'\x11\x99\x00\x02\x00\x00\x00b')
Результат разбора:
'A1': 21076,
{'A2': [{'B1': 6842, 'B2': 6395},
'B1': -20086, 'B2': 32558},
{'B1': -12342, 'B2': 1392},
{'B1': -5497, 'B2': 29336},
{'B1': -12250, 'B2': 2500},
{'B1': -12839, 'B2': 32917}],
{'A3': -5955074549195280689,
'A4': {'C1': 'ra',
'C2': {'D1': 0.02119048684835434,
'D2': -0.43146809935569763,
'D3': 3914469785,
'D4': [20117, -584]},
'C3': 3734379902,
'C4': [53552, 60107, 8611, 5581],
'C5': -5836846185582231652,
'C6': [26, 74, -14],
'C7': -0.8725027441978455},
'A5': -2752966604886358811,
'A6': 86,
'A7': -0.3562338163542651}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xa9 0x4e 0x4a 0x44 0x53
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Размер (uint16) и адрес (uint16) массива адресов (uint16) структур B |
2 | Структура C |
3 | int64 |
4 | uint64 |
5 | Структура E |
6 | uint16 |
7 | uint16 |
8 | uint8 |
Структура B:
Поле | Описание |
---|---|
1 | int8 |
2 | uint64 |
Структура C:
Поле | Описание |
---|---|
1 | uint8 |
2 | Массив char, размер 7 |
3 | double |
4 | uint16 |
5 | Структура D |
6 | uint64 |
7 | uint32 |
Структура D:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint32) массива uint16 |
2 | Размер (uint32) и адрес (uint32) массива uint64 |
3 | Размер (uint32) и адрес (uint16) массива float |
4 | int64 |
5 | double |
Структура E:
Поле | Описание |
---|---|
1 | int64 |
2 | uint16 |
3 | float |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xa9NJDS\x04\x00\x94\x00\x81fabipfq\xc4O\xf9Q\x98\x9e\xeb\xbf\xd8\x94\x07'
(b'\x00\x00\x00\x9c\x00\x00\x00\x02\x00\x00\x00\xaa\x00\x00\x00\x02'
b'\x00\x00\x00\xba\x00\xd2\x88g {\xf1\x87\x80:\xd7\x05]\xeb\x8c\xeb?\x82O\xba'
b'\xd1\xc0T\xa0\xdd\xfd\xb7c\x9eK\xa2\x9d\x8d\xb16\xef\x94>m\xe2\xc3\x10b\xa9'
b'\x92\xb1q7\xb65\xe6\x8d\xa5\x8en\x17\xb5`\xbfx\x8b\x00\x04tu\x1eL\\'
b'\xbd\xcaF\x92\xfb\x9e\xeep\x17%\xe9\x91\xc8\xa6bybD\xaf^2=\x96\xf4\xe2g\x08d'
b'\xa3\x14&\xa3p\x00y\x00\x82\x00\x8b\x00;\n\xc2G9\x9d^`\xd8/\x00\x9f'
b'\x81\xae\x9dc%\x89\xca&{,\xc7\xb3\x89]\x0ck\x1a04aH?\xea64?')
Результат разбора:
'A1': [{'B1': 117, 'B2': 18127629286693948446},
{'B1': -98, 'B2': 12018016036173869294},
{'B1': 98, 'B2': 10825864461517349497},
{'B1': -12, 'B2': 11756106569287755746}],
{'A2': {'C1': 129,
'C2': 'fabipfq',
'C3': -0.8631097413112845,
'C4': 38104,
'C5': {'D1': [2619, 18370, 40249, 24670, 12248, 40704, 44673],
'D2': [3205198211130418077, 3466200564068103111],
'D3': [0.7827332019805908, 0.7039629220962524],
'D4': -9185107403871909678,
'D5': 0.8609520737506735},
'C6': 15969857465784881026,
'C7': 2657335293},
'A3': -7714887500449340853,
'A4': 10568085824746974526,
'A5': {'E1': -6517299967370497615, 'E2': 28302, 'E3': -0.8777632117271423},
'A6': 35704,
'A7': 1024,
'A8': 116}
Пример 2
Двоичные данные:
b'\xa9NJDS\x04\x00\x94\x00\xb6pbdclwu\xe0 t\x1a\x08\xd6\xae\xbf\x11\xe6\x02'
(b'\x00\x00\x00\x9c\x00\x00\x00\x02\x00\x00\x00\xa0\x00\x00\x00\x02'
b'\x00\x00\x00\xb0\x00.\xa9\x934\x81>\x81\x0fd\xda;\x859!\xd9?\xd9\xfe\x87'
b'Z\xed\x87h\x12\xccO\xdd\xc5\t\xbe\xe4 Z\xc4"&\xd4\x15\x8aK%\xfe{'
b'\xf1\x90\xeer\xb3\x10hr\x16{\xee\x84\x8b\x87>&b\xa7x\x15\xcc\xd69\xd6'
b'5\x86\\\xef\xf3\xfd\x13\x0f\xf0\x91A\x7f\xdb\x04\x0c\xd5}\x9a\xd3}'
b'\xcd\xce\xf0\x97HZ\x85]K\xa7\xcb%p\x00y\x00\x82\x00\x8b\x00\xae\xd0\x96\x08'
b'*\x9f\x92X/F\x7fx\xfb\xcb\xe5!\xc8ZYi\x94\xbe1\xbeh\x8e\xf1>')
Результат разбора:
'A1': [{'B1': -52, 'B2': 17577369602148940246},
{'B1': -3, 'B2': 350013315649376019},
{'B1': 12, 'B2': 17352032354609823189},
{'B1': -105, 'B2': 2723454341809003080}],
{'A2': {'C1': 182,
'C2': 'pbdclwu',
'C3': -0.06022668192787406,
'C4': 58897,
'C5': {'D1': [53422, 2198],
'D2': [8682735775757016874, 7591198462518348795],
'D3': [-0.17357856035232544, 0.4717895984649658],
'D4': 1117242907218389294,
'D5': 0.3926528740989055},
'C6': 1326459543756472025,
'C7': 3319615436},
'A3': 2747974614027386377,
'A4': 17400781021410629076,
'A5': {'E1': 1617469637118848656, 'E2': 61051, 'E3': 0.2647362947463989},
'A6': 25126,
'A7': 30887,
'A8': 21}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x21 0x53 0x53 0x4e 0x4d
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив адресов (uint32) структур B, размер 2 |
2 | uint64 |
Структура B:
Поле | Описание |
---|---|
1 | Структура C |
2 | Массив int8, размер 5 |
Структура C:
Поле | Описание |
---|---|
1 | Адрес (uint32) структуры D |
2 | double |
3 | Размер (uint16) и адрес (uint32) массива uint8 |
4 | Размер (uint16) и адрес (uint32) массива int32 |
5 | uint64 |
6 | int8 |
7 | int8 |
Структура D:
Поле | Описание |
---|---|
1 | int16 |
2 | uint32 |
3 | float |
4 | uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'!SSNM\x00\x00\x008\x00\x00\x00\x83\x1d\x1b\x16\xe9\x18\xc8\x85\x00tj\xfb'
(b"\x98J\xb4\xbfw\xac\x98\x90\xaf\xd0\xd3\x8b'\xb1\x07\xe9\x9c\x06&s:\x8a$\xb8"
b'W\xb5R\xc1\xfbH\xc1\x1b\x00\x00\x00\x15?\xed\x9a\xc94b\x8b\xe0'
b'\x00\x05\x00\x00\x00#\x00\x04\x00\x00\x00(\xf6q\x95\xaf\xe9h\xbc\xea8_s\xe1'
b'"c-\x85\x9c\\\x18\xa3\x12>\xba\xf1\xa3p\xdb1 /\xd9\xc0\x89B-x\xac\xd6\xd0%'
b'\xb9\x91\xa7\x8f\x04\xe4\xe9A\xd4w\xb1\x00\x00\x00_\xbf\xda\xfb!:'
b'\xb6\xed\x1c\x00\x06\x00\x00\x00m\x00\x04\x00\x00\x00s\xd7\x91$\xba\xef'
b'y\xa1>\x1a\x07\xe4\xf9|S,')
Результат разбора:
'A1': [{'B1': {'C1': {'D1': 29802,
{'D2': 4221061812,
'D3': -0.9674773216247559,
'D4': 2427441363},
'C2': 0.9251447699683659,
'C3': [139, 39, 177, 7, 233],
'C4': [-1677318541, 982131896, 1471500993, -79118053],
'C5': 17758139388466347242,
'C6': 56,
'C7': 95},
'B2': [115, -31, 34, 99, 45]},
'B1': {'C1': {'D1': -31332,
{'D2': 1545118482,
'D3': 0.36512479186058044,
'D4': 1893413152},
'C2': -0.42157774671405135,
'C3': [47, 217, 192, 137, 66, 45],
'C4': [2024593104, 632918439, -1895504663, 1104443313],
'C5': 15533236975077794110,
'C6': 26,
'C7': 7},
'B2': [-28, -7, 124, 83, 44]}],
'A2': 2097295241870083328}
Пример 2
Двоичные данные:
b'!SSNM\x00\x00\x002\x00\x00\x00z\x97\xc4\xf0ZR\xaa4\xf1\x99\x1b\x82'
(b'\xed,\xae\xbe\xca\xce\xc6\xa9>\x15B+\x0b\xd3\xda{e"\x8b\xc9y\xcf\x0e\n'
b'\xd6\xaf\x00\x00\x00\x15?\xecM\x9ej}4\xd4\x00\x03\x00\x00\x00#'
b'\x00\x03\x00\x00\x00&\xe3Ks/\xfd\xee\xc8\x1b\xb5\x1e\x96\x17\xce\xd6'
b'\x94\xc3^\xf4\x83s|\xbdw\x9fQ\r\x17V\xa3;x.\xd4f\xd7T\xcb)\x89\x91\xdf5'
b'\n\xdb,\x9b0\x8f\x00\x00\x00Y\xbf\xebSy1re\xf2\x00\x03\x00\x00\x00g'
b'\x00\x04\x00\x00\x00j\xad\xdf\x19v\x82\xd5\xaa\x8f\xbc\xd3\xe3\x92{\x15n')
Результат разбора:
'A1': [{'B1': {'C1': {'D1': -26341,
{'D2': 2196581550,
'D3': -0.39610880613327026,
'D4': 2839418178},
'C2': 0.8844749526848781,
'C3': [43, 11, 211],
'C4': [-629447390, -1949730353, 235591343],
'C5': 16378311119823882267,
'C6': -75,
'C7': 30},
'B2': [-106, 23, -50, -42, -108]},
'B1': {'C1': {'D1': -15522,
{'D2': 4102255484,
'D3': -0.06045467033982277,
'D4': 219633315},
'C2': -0.8539396253356115,
'C3': [59, 120, 46],
'C4': [-731457708, -886470255, -550171941, 748368015],
'C5': 12528760685159885455,
'C6': -68,
'C7': -45},
'B2': [-29, -110, 123, 21, 110]}],
'A2': 10936130065887016177}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x42 0x45 0x4c 0x57
, за которой следует структура
A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив char, размер 8 |
2 | int16 |
3 | Структура B |
4 | uint16 |
5 | double |
Структура B:
Поле | Описание |
---|---|
1 | Массив структур C, размер 2 |
2 | Структура D |
3 | int32 |
4 | Структура E |
Структура C:
Поле | Описание |
---|---|
1 | int64 |
2 | int8 |
3 | Размер (uint32) и адрес (uint16) массива uint64 |
4 | uint8 |
5 | float |
Структура D:
Поле | Описание |
---|---|
1 | float |
2 | int16 |
3 | int8 |
Структура E:
Поле | Описание |
---|---|
1 | int64 |
2 | uint16 |
3 | Размер (uint16) и адрес (uint32) массива uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'BELWiqixqtiv\x82\x19\x04y*ZXg;An\x00\x00\x00\x02\x00[\x86?+\x0b\x8amg'
(b'\xd4\xb6\xde{c\xe5D\x00\x00\x00\x02\x00k\xda\xbf\x19\xae\x84>\x1a'
b'\xdc\x9c:\xb6o\xeaWf\x10\xae\r+\xc6\xf5\x94\xf7?\xda\x95\x00\x03\x00\x00\x00'
b'{\x82y?\xbe9\xf5`\xcbT\xa0\xc5\xcb\x11l\x14\x8fS\x02\x7f8\xd8\xb6\xc7'
b"\x19_'\xc3@\x82\x83\x94\x8a\xae\xcdO\xa77I\x8f\xcc\xcd:\x83\xdf\x1a")
Результат разбора:
'A1': 'iqixqtiv',
{'A2': -32231,
'A3': {'B1': [{'C1': 322335415852284737,
'C2': 110,
'C3': [14252504601643143938, 9167315321048620839],
'C4': 134,
'C5': 0.6681448221206665},
'C1': 7883503554617107429,
{'C2': 68,
'C3': [14069388737549872845, 5739617039191690554],
'C4': 218,
'C5': -0.6003191471099854}],
'B2': {'D1': 0.15123218297958374, 'D2': 15030, 'D3': 111},
'B3': -363370992,
'B4': {'E1': -5905015402889152705, 'E2': 55957, 'E3': [131, 223, 26]}},
'A4': 33401,
'A5': 0.11807187665120233}
Пример 2
Двоичные данные:
b'BELWfirqfvri\xfb\x1a\xeb\xef\xe6\xeb\x11L\x94\xe7\xef\x00\x00\x00\x02\x00'
(b'[\x15>\xd0\xda\x8e\x91\x8bf\x92Js\xf3\xfa\xf0\x00\x00\x00\x03\x00k\x0b\xbf\\'
b'.|?ug\x15\xc8\xf9q\x9e\xf5\xdf \x93\xfc\x00\x07\xd4\x8d\xb2\xf0\x8a\xcf\x00'
b'\x06\x00\x00\x00\x83I\xde\xbf\xd6\x9e\x81\xdbU\xf9\xf0\xf2\xf9\x13\xfe\xf5'
b'p\x9a\xa8)\xdc\xf0@\x96\x01\x07^Fc"\xcay\x9b\x8et\xd7\xa9\x8c\x9b\x06'
b'\xd5\xddj\xfb%%\x8cz\xe7\x84yu\xf8\xb2\x94sT')
Результат разбора:
'A1': 'firqfvri',
{'A2': -1254,
'A3': {'B1': [{'C1': -1445683058080705305,
'C2': -17,
'C3': [17508047012139932328, 3016550010616612702],
'C4': 21,
'C5': 0.40791743993759155},
'C1': -7959155137946848262,
{'C2': -16,
'C3': [5071935858368286324,
15540106586681105770,
18096911962945848441],
'C4': 11,
'C5': -0.8600842952728271}],
'B2': {'D1': 0.9586041569709778, 'D2': -14087, 'D3': 113},
'B3': -1628053728,
'B4': {'E1': -7783346022372232464,
'E2': 35535,
'E3': [117, 248, 178, 148, 115, 84]}},
'A4': 18910,
'A5': -0.35342451495662797}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x42 0x47 0x58 0x48 0x25
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | uint32 |
3 | Массив адресов (uint32) структур E, размер 2 |
4 | int8 |
5 | float |
6 | int64 |
7 | Структура F |
8 | Размер (uint16) и адрес (uint16) массива uint64 |
Структура B:
Поле | Описание |
---|---|
1 | float |
2 | Адрес (uint32) структуры C |
3 | uint16 |
Структура C:
Поле | Описание |
---|---|
1 | int16 |
2 | uint8 |
3 | int32 |
4 | Адрес (uint16) структуры D |
5 | float |
Структура D:
Поле | Описание |
---|---|
1 | uint64 |
2 | Массив uint32, размер 2 |
Структура E:
Поле | Описание |
---|---|
1 | int64 |
2 | Размер (uint32) и адрес (uint32) массива int16 |
3 | int8 |
4 | uint8 |
Структура F:
Поле | Описание |
---|---|
1 | uint64 |
2 | uint8 |
3 | int64 |
4 | uint8 |
5 | int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'BGXH%\x00T\xc2\xe1\xbd\x94\x00\x00\x00f\x00\x00\x00\x80\xaa?!\xe9\xa0'
(b"\xcf\xf1\x0b%\xf9\x1e\xea'Fq\xcd\x0f\x91\x93\xcf1\x03\xd8\xe7\xd0"
b';\xcb\xb4\xbe\xd1\xd1a\x00\x03\x00\x92\xf5|Ta{7\xee\x1ek\x8c5e\xcbf\xe4~\xce'
b'm\xe8\xc3\x99\x91\x82\x007\xbf\x0c\x1be\xbf:\xf0\xa2\x00\x00\x00Gd\xd4\xd9O'
b'\x98B\x12\x05@\x89h\x15%\x14Z\x81`\n\x00\x00\x00\x04\x00\x00\x00^\xb6U(Sir'
b'\xb5T\x1fFj\x92\xb4\xcf\x10a\x08\xfb\x00\x00\x00\x04\x00\x00\x00x'
b'\xfd \x17\xe6s\xea\xfeP\xbff\xb6\xb0D_\\\x0e^\x8e_7\x96;>\xf5\x94e')
Результат разбора:
'A1': {'B1': -0.7302342653274536,
{'B2': {'C1': -12691,
'C2': 232,
'C3': -1013345918,
'C4': {'D1': 17689106214060289566,
'D2': [1804350821, 3412518014]},
'C5': -0.5472930073738098},
'B3': 25812},
'A2': 3269574036,
'A3': [{'E1': 7499941523803430922,
'E2': [-9905, -26558, 4613, 16521],
'E3': -74,
'E4': 85},
'E1': 7679399116046141691,
{'E2': [10323, 26994, -19116, 8006],
'E3': -3,
'E4': 32}],
'A4': -86,
'A5': 0.6324710845947266,
'A6': -3462974380749952473,
'A7': {'F1': 5076063721773846321,
'F2': 3,
'F3': -2817054086657687855,
'F4': 209,
'F5': 97},
'A8': [1722191360642039654, 13164096887160987278, 6861117738525758565]}
Пример 2
Двоичные данные:
b'BGXH%\x00T\x1eq\xf3\x0e\x00\x00\x00b\x00\x00\x00z\xf3?\t\x0c\x0b'
(b'\xed\xf7\x0c\x10\xe3\xdf\x00\n\xfb\x1c\x8e\x8a\xd4U\xfa\x8c@\xcc\x10\x9b'
b'\xcal;\xc6Cm\x17\x00\x06\x00\x8c\xda\x8eFp\xfe\x8b\xc1m\x83\xd6J\xacG'
b'\xda\xd5\xed\x87\xef\x1a\xa2\xd8q\xeb\x007\xbf\x0b\x961\xbe\x9dl/'
b'\x00\x00\x00Gd \xff\x1b8\xac\x14[\x99~C<\xdc\xa7\x00\x00\x00\x02\x00\x00'
b'\x00^\x9e\x07\xa6\xe5O\x08>\x8e\xbd\xd7\xfd\xb0}pk\x90\x00\x00'
b'\x00\x03\x00\x00\x00t\x83\xae\xb4d\xb0\xee@\xab\xed1}t\r\xb9\xe6\xf1\xddT'
b'v2@2^0\xb4\xed[\xe8?\xd2\x7f\xfb\\\x8b?\xb4\xe4\xb8+\xffZz\xa2\x8d\xeb\xc5'
b'\xe6\xc5\xd8\xf5')
Результат разбора:
'A1': {'B1': -0.3074660003185272,
{'B2': {'C1': -30737,
'C2': 26,
'C3': -1562873365,
'C4': {'D1': 15748602398082056557,
'D2': [2211859116, 1205523949]},
'C5': -0.545260488986969},
'B3': 25632},
'A2': 510784270,
'A3': [{'E1': 1466934871212219559, 'E2': [-229, 14508], 'E3': -98, 'E4': 7},
'E1': -4767062746087789680,
{'E2': [-22811, 20232, 16014],
'E3': -125,
'E4': 174}],
'A4': -13,
'A5': 0.5353400111198425,
'A6': -1299556700791046134,
'A7': {'F1': 18094494129786845836,
'F2': 64,
'F3': -3742319996643326397,
'F4': 109,
'F5': 23},
'A8': [12998708961831808305,
9039865444134149460,
8516940430383822061,
6622613425371176075,
4590545399860648570,
11713277441073338613]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xe2 0x58 0x44 0x52 0x4e
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | uint64 |
2 | Размер (uint16) и адрес (uint32) массива структур B |
3 | Структура D |
4 | uint64 |
5 | float |
6 | int32 |
Структура B:
Поле | Описание |
---|---|
1 | int64 |
2 | uint32 |
3 | Массив uint16, размер 3 |
4 | Адрес (uint16) структуры C |
5 | int8 |
Структура C:
Поле | Описание |
---|---|
1 | double |
2 | Размер (uint32) и адрес (uint32) массива int8 |
3 | int16 |
4 | uint64 |
5 | double |
Структура D:
Поле | Описание |
---|---|
1 | int64 |
2 | Размер (uint16) и адрес (uint32) массива int8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xe2XDRN|\xd0\xc9\xcbnrj$\x02\x00y\x00\x00\x00\x8f1gQ\xfeq\n?\x02'
(b'\x00\xa3\x00\x00\x00\xd8\xe2\xec\xbd\xba\xa5\x9c\xa2\xa6\xf4\x13\xbfw\xa4n'
b'd\x9d\xfb0g\x9f\xaaz\x0c\xef?\x02\x00\x00\x001\x00\x00\x00\xa7COZ\xb8'
b'P\xf1\x0ey\x9d|z\xb9("\xd4\xde\xbf\xb4\xc6\xd8[Y\xe0\x01S\xeb\xbf\x02'
b'\x00\x00\x00U\x00\x00\x00\n\x84\x8cu\rk+(\x1b2P\xc1\xd5\xfax#\xda'
b'\xbf\xba+\x80\xf7N\xcf\x85f\xe5\xcc\x7f`\xe6\x13ov\x1e\x1f3\x00u\x8f\xc6'
b'\xb8\xd8\x00\xee\xdd!8*\xc7\x03n\x99W\xff\x19NW\x00\xe3\x14\x11')
Результат разбора:
'A1': 2624035553087705212,
{'A2': [{'B1': 7387538701837937594,
'B2': 1618988261,
'B3': [5094, 30319, 7966],
'B4': {'C1': 0.9702733356927862,
'C2': [-99, -5],
'C3': 17319,
'C4': 11347117165740841551,
'C5': -0.4816975972843591},
'B5': 117},
'B1': 2440368260508075663,
{'B2': 63384120,
'B3': [39278, 65367, 19993],
'B4': {'C1': -0.8538827306573422,
'C2': [-76, -58],
'C3': -31734,
'C4': 3610523693212333452,
'C5': -0.40841507430652246},
'B5': -29}],
'A3': {'D1': 4542568511257915791, 'D2': [20, 17]},
'A4': 11717422551980106456,
'A5': -0.5779517889022827,
'A6': 1684972663}
Пример 2
Двоичные данные:
b'\xe2XDRN\x93\xe0\x17Qd/\xdd\xc5\x02\x00y\x00\x00\x00\x8dk:\x0e\xea'
(b'\x10f\xbe\x02\x00\xa3\x00\x00\x00\x03\x1c\xf9\x8c\xba\x17\x11\xc2\x10\xa8|'
b'>\xb6\x19\xc9%\x14\xbb<\xd7\x18\xd9\xb3\x8d\xd0\xbf\x02\x00\x00\x001'
b'\x00\x00\x00\x042\x1b\xaf\xd9\x17\xbc\x962\xa10\xd9\xc1<\nP\xd6?rS\x0e'
b'\xfc\x98\xfc\x93\xaa\xe1?\x02\x00\x00\x00U\x00\x00\x00\xf6n\xed\x14%'
b'W\x92\x89co:}n\x1f<\x96\xe6?\x98\x10\x83\xed\xf4o,5\x00q\xe7\xa3\x00:H'
b'\x92\xa5\xf93\x00kc\xe9\x80<\x11!\x12\xbf\x89\xf0\x07\x96(\x0c8e\x13\xd2'
b'W\x00\xe2\x9b7')
Результат разбора:
'A1': 14257604103228612755,
{'A2': [{'B1': 3831560480732942488,
'B2': 2749853952,
'B3': [14848, 37448, 63909],
'B4': {'C1': -0.258648836144278,
'C2': [20, -69],
'C3': 12804,
'C4': 11615512123540090651,
'C5': 0.3486352532703618},
'B5': 107},
'B1': -4678640704971282077,
{'B2': 2517102729,
'B3': [3112, 25912, 53779],
'B4': {'C1': 0.5520725186869428,
'C2': [114, 83],
'C3': 28406,
'C4': 8026410222524634349,
'C5': 0.7058392156504063},
'B5': -30}],
'A3': {'D1': -4727072161431655539, 'D2': [-101, 55]},
'A4': 13983984407958592515,
'A5': 0.2467348575592041,
'A6': 633936310}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x47 0x59 0x54 0x41
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив адресов (uint32) структур B, размер 2 |
2 | Структура C |
3 | uint32 |
4 | Размер (uint32) и адрес (uint32) массива uint16 |
5 | uint16 |
6 | int32 |
Структура B:
Поле | Описание |
---|---|
1 | int64 |
2 | Массив char, размер 5 |
Структура C:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры D |
2 | uint32 |
3 | Размер (uint32) и адрес (uint32) массива float |
4 | Адрес (uint16) структуры E |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | uint8 |
3 | Размер (uint16) и адрес (uint32) массива int16 |
Структура E:
Поле | Описание |
---|---|
1 | uint64 |
2 | int64 |
3 | uint32 |
4 | int16 |
5 | double |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'GYTA.\x00\x00\x00;\x00\x00\x00L\x00\xfa\x03\xb4c\x06\x00\x00\x00W\x00'
(b'\x00\x00o\x00\x84Dl \x03\x00\x00\x00\x8d\x00\x00\x00\x8d5N\x9aZ\x10\xc1\xd4'
b'\xda\xbb^=U\xf2dfvti4Nk<$\xc1\xb5\x97mgcea\x92\xc5W\x8cC\x92\xd7\xf8'
b'\xce\x02\x00H\x00\x00\x00\xe6\r\xaf>[\xc4\x00\xbf\xd1n\xdf>\x9bK\x83>-'
b'\x98\xa9\xbe\xf3\xc7\xdb\xbef\xb2\xf1_\xed\xb5\x1d\x11\xe2\xd1U\xac\xc25\tXh'
b'\xc2\x12\xa2;\xe7\x80.y\xa2\xb5;\x90\xbf\xc9\x97\x03\xff\x02\x0c')
Результат разбора:
'A1': [{'B1': -984813466422684479, 'B2': 'dfvti'},
{'B1': -7514888041821155788, 'B2': 'mgcea'}],
{'A2': {'C1': {'D1': -120090045, 'D2': 206, 'D3': [-14958, -29609]},
'C2': 1672741882,
'C3': [0.3419029116630554,
-0.5029961466789246,
0.43639233708381653,
0.25643619894981384,
-0.33123913407325745,
-0.42925986647605896],
'C4': {'E1': 1233341904090935910,
'E2': 6343660660359287266,
'E3': 2719138408,
'E4': -6341,
'E5': -0.015852773706042544}},
'A3': 543966340,
'A4': [38857, 65283, 3074],
'A5': 13709,
'A6': 274373198}
Пример 2
Двоичные данные:
b'GYTA.\x00\x00\x00;\x00\x00\x00L\x00N\xc6\xb1\xa7\x06\x00\x00\x00W\x00'
(b'\x00\x00o\x00\x87k\x9f\xba\x04\x00\x00\x00\x8d\x00\x00\x00\xcc\xae\x9d\x7f'
b'Q\xa0\r\xea!\xb8\xcbUP\xa1ekjwoq\x88Y\xa70\xae5\x94mzfso\x80\x88\x84\xda'
b'\x89\xe0~\x8a\x89\x02\x00H\x00\x00\x008U*>{-\x8f>\xe6\xd1-\xbf\x17\xd0[\xbfU'
b'\x8f\xf9>\xd5|\x1f\xbf\x9b\xac8\x9d\x85v1\xc5\x81\x97\xb3|ws\xa2^\xdf'
b'\xf2Sb\xf9\xb4\xca\x087\x9d\x1d\x1a\xe3?5\xe3\x1f\x07.\x03\xf9\xaa')
Результат разбора:
'A1': [{'B1': -6822859102010349043, 'B2': 'ekjwo'},
{'B1': -7767110458341226383, 'B2': 'mzfso'}],
{'A2': {'C1': {'D1': -1971396471, 'D2': 137, 'D3': [-30592, -9596]},
'C2': 2813445710,
'C3': [0.16634070873260498,
0.27964386343955994,
-0.6789840459823608,
-0.8586439490318298,
0.4874216616153717,
-0.6229985356330872],
'C4': {'E1': 14209268615571090587,
'E2': 6819139742822799233,
'E3': 1649668831,
'E4': -19207,
'E5': 0.5969379492383038}},
'A3': 3131009927,
'A4': [58165, 1823, 814, 43769],
'A5': 44748,
'A6': -1605271651}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x45 0x47 0x57 0x53 0x49
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | Массив char, размер 2 |
3 | Структура D |
Структура B:
Поле | Описание |
---|---|
1 | uint64 |
2 | uint64 |
3 | Размер (uint16) и адрес (uint16) массива структур C |
Структура C:
Поле | Описание |
---|---|
1 | Массив uint32, размер 3 |
2 | uint64 |
3 | int32 |
Структура D:
Поле | Описание |
---|---|
1 | int8 |
2 | Размер (uint32) и адрес (uint32) массива int64 |
3 | int32 |
4 | Размер (uint16) и адрес (uint32) массива uint8 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'EGWSIa0\xb7\xcf\x9e!\xd6)^\xc4\x89e\x03\xe3\x7f\xc1\x00\x02\x00.ek#'
(b'\x00\x00\x00\x02\x00\x00\x00^~\x86\x1d\xe2\x00\x02\x00\x00\x00n \r'
b'\x8e\x9b\xad\xc7\x06\xa9t\x0e\xa3o\x88z\xf3\xa0W\xab\xa4\xf2\x08~'
b'\xf8\xd2\xb1\x96\xba\xac\x08\x89\xab:TT\xb3\xa2\xf5>\xe50\xd5z\x0e\xfcg\x9f'
b"\x99t\xfe\xc6\x83lX\x0f_\xa9\xcdy\xf5\xec\x91\xc9\xca\xbd\xdb'")
Результат разбора:
'A1': {'B1': 7003299522900252201,
{'B2': 6828734001950457793,
'B3': [{'C1': [537759387, 2915501737, 1947116399],
'C2': 9834440606308082930,
'C3': 142538962},
'C1': [2979445420, 143239994, 1414837154],
{'C2': 17671813985751142140,
'C3': 1738512756}]},
'A2': 'ek',
'A3': {'D1': 35,
'D2': [-88238641330036823, -3640608427345327427],
'D3': 2122718690,
'D4': [219, 39]}}
Пример 2
Двоичные данные:
b'EGWSI?\x06\x89\xab\xae3H\xe8p\x15\xbf\xaem\xe7\xc8\xde\x00\x03\x00.xeH'
(b'\x00\x00\x00\x02\x00\x00\x00v\xdc\x99:\x8a\x00\x03\x00\x00\x00\x86\xaa\x91'
b"\xf5\xb5X\x89\x88j\r\xa1\xc4\xa7\t\x96\xb9(\x13u\x162\x8c'\x91\x92v+"
b'x\xb5\x96\x85\xf3=\xac\xcb\xf3\x81\x0e\x83\x16|o\x91G\x04o\xf6`\x98\xfd;'
b'\x03&\xc2\xbf\xd61\xd0\xc6=\xec\xb8\xb5jo\xe83\xa5LXE\x08\xb0\x83\xca'
b'\xd1\xe0R\xc5\x8a\xde\x7f,\x80\x0b\x1bb\xa1\xcc\xce\xedK')
Результат разбора:
'A1': {'B1': 4541468644704733416,
{'B2': 8076572262647974110,
'B3': [{'C1': [2861692341, 1485408362, 228705447],
'C2': 690943174624220722,
'C3': -1943563886},
'C1': [1982560437, 2525360957, 2899047297],
{'C2': 1045704262183634692,
'C3': 1878417560},
'C1': [4248503078, 3267352113, 3502652908],
{'C2': 13309661302632981836,
'C3': 1480919216}]},
'A2': 'xe',
'A3': {'D1': 72,
'D2': [-8950110548053882146, 9163840126984561100],
'D3': -593937782,
'D4': [206, 237, 75]}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xa7 0x48 0x4e 0x4b
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Массив адресов (uint16) структур B, размер 7 |
2 | Структура C |
3 | Адрес (uint32) структуры D |
4 | float |
Структура B:
Поле | Описание |
---|---|
1 | uint8 |
2 | Массив char, размер 4 |
3 | Массив int32, размер 2 |
Структура C:
Поле | Описание |
---|---|
1 | int32 |
2 | int8 |
3 | uint64 |
4 | int32 |
5 | uint16 |
Структура D:
Поле | Описание |
---|---|
1 | uint64 |
2 | Массив uint16, размер 5 |
3 | int16 |
4 | Размер (uint32) и адрес (uint32) массива int32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xa7HNK-\x00:\x00G\x00T\x00a\x00n\x00{\x00\xd1-\xa6G\x05\xce\xe9\x85\xbc\xab'
(b'\xbe<E\t\xef\x81\xf5y\xcf\x94\x00\x00\x000A*?BizqhR|\x0e\x96S\x90\xa8\x19vw'
b'ttg;&\xfa\x00\xe6u\xa0\xd5\xe3unvx!\xb7\x86\xc0\x96\xd1\xe7s\xf9noy'
b'z\x92\xeb\xb5\xde\x15\x83\x96\x81xyysi\xec\x03\x94\x12\xc4\x9c\xfe\xbb\xcay'
b'koj[T\t\x1b\xe3\x00\xb5\xac\x8cpnihq/\xaf\x90xR\xac\xbc&\x12z|\x0b\xacG/'
b'\x0e\xbc$ \xab\x7f\n\xd2\xa9\x12\xe6\xc8\xa1\xb5\xf2\xa2\x1f\xb5\xe1>'
b'=\xf4\x83\x9a\x03\x00\x00\x00\x88\x00\x00\x00')
Результат разбора:
'A1': [{'B1': 66, 'B2': 'izqh', 'B3': [-1777435566, 430477395]},
{'B1': 118, 'B2': 'wttg', 'B3': [16393787, -710904346]},
{'B1': 227, 'B2': 'unvx', 'B3': [-1064913119, 1944572310]},
{'B1': 249, 'B2': 'noyz', 'B3': [-558503022, -2120842475]},
{'B1': 120, 'B2': 'yysi', 'B3': [311690220, -1140941628]},
{'B1': 202, 'B2': 'ykoj', 'B3': [453596251, -1397423901]},
{'B1': 140, 'B2': 'pnih', 'B3': [-1867567247, -1129557384]}],
{'A2': {'C1': 1202073041,
'C2': 5,
'C3': 4989072132031244750,
'C4': -176034039,
'C5': 53113},
'A3': {'D1': 14476278572811714475,
'D2': [46497, 41714, 46367, 16097, 62525],
'D3': -25981,
'D4': [2088374822, 793226251, 539278350]},
'A4': 0.6650571823120117}
Пример 2
Двоичные данные:
b'\xa7HNK-\x00:\x00G\x00T\x00a\x00n\x00{\x00\xcd\xfa\x83\xa3\xf1|\xd2,\xa1\xeb'
(b'|xWN\x81\xff\xd4\x04!\x94\x00\x00\x00\xf5\xde\x83>\x92fzrt\xaf\xa0$\x83\x9b:'
b'\xcbvciaib\xe0W\xeb?]\x91\xa2\x16Ybydh\xa3\x1a\xd6\xb1\r\xf4\x118\\vww'
b'rhw\xae\xdf\xb9\xf6e6yoohn|\x0c\x8f\xefW\xf6b\xa2CwftzD\xc4\x03C&\x0fUc\x93'
b'sgof^\x8dGA\xfa\xe5y\xb5\xdcoc\x91\x18hutw)\xea\xc2i \x9d3\xf5<\xd8\xe0'
b'\xd8zv\xe5M\x98!\x1f\xb7\xe78\x02\x03\x00\x00\x00\x88\x00\x00\x00')
Результат разбора:
'A1': [{'B1': 146, 'B2': 'fzrt', 'B3': [-2094751569, 1993030299]},
{'B1': 99, 'B2': 'iaib', 'B3': [1072388064, 379752797]},
{'B1': 89, 'B2': 'bydh', 'B3': [-1311368541, 940700685]},
{'B1': 92, 'B2': 'vwwr', 'B3': [-542214296, 912651961]},
{'B1': 121, 'B2': 'oohn', 'B3': [-275837828, -1570572713]},
{'B1': 67, 'B2': 'wftz', 'B3': [1124320324, 1666518822]},
{'B1': 147, 'B2': 'sgof', 'B3': [1095208286, -1250302470]}],
{'A2': {'C1': -1551631667,
'C2': -15,
'C3': 6302925029968237180,
'C4': -721452722,
'C5': 8452},
'A3': {'D1': 16201766683295948905,
'D2': [31448, 58742, 38989, 7969, 59319],
'D3': 568,
'D4': [-1855754276, 1953851416, -1024841353]},
'A4': 0.2575604021549225}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4c 0x42 0x57 0x41
, за которой следует структура
A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | double |
2 | Структура B |
3 | Адрес (uint32) структуры F |
Структура B:
Поле | Описание |
---|---|
1 | uint64 |
2 | uint16 |
3 | int16 |
4 | Адрес (uint32) структуры C |
Структура C:
Поле | Описание |
---|---|
1 | Размер (uint32) и адрес (uint16) массива адресов (uint16) структур D |
2 | uint64 |
3 | Размер (uint32) и адрес (uint16) массива uint8 |
4 | Структура E |
5 | uint8 |
6 | uint64 |
Структура D:
Поле | Описание |
---|---|
1 | uint32 |
2 | int16 |
Структура E:
Поле | Описание |
---|---|
1 | uint32 |
2 | Размер (uint32) и адрес (uint16) массива uint32 |
3 | int8 |
4 | Размер (uint32) и адрес (uint32) массива float |
Структура F:
Поле | Описание |
---|---|
1 | int16 |
2 | int16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'LBWA\x04\x89\xc2\xbaLV\xe0\xbf\x81\x08?\x95\xcd\x9aU\xf7\xd9\x83\xcb%'
(b'm\x00\x00\x00\x9d\x00\x00\x00\xd5\xd8\x86\xbeO\x87\xc8\x1e!n\xda\xe3'
b'\xaf\xed\xf4dr\x85\xc4-b\x02\x11\x11}I\xf4\xe2\x83\xac \x00&\x00,\x00'
b'2\x008\x00\xec\xa4\xb6\xdd\xa2\x9e\x89/"-\xde\x1c\xf5e\xb4\xae\x98\xea4j'
b'\xbf,\x8f7\xbf\xdb\xee~?l\x10\x1c?\x87\x83/\xbe\x05\x00\x00\x00>\x00\x9e'
b'\\\x8c\xb8\x94\x9f\x1c\x1a\x05\x00\x00\x00H\x00\x96\xa9\xa2\x8e\x03\x00\x00'
b'\x00M\x00m\x05\x00\x00\x00Y\x00\x00\x00\xeac\xd9b[<2}5N>\xdb\x9b')
Результат разбора:
'A1': -0.5105346343664512,
{'A2': {'B1': 17822321308151515265,
'B2': 33753,
'B3': 9675,
'B4': {'C1': [{'D1': 3196508373, 'D2': -30897},
'D1': 1847664328, 'D2': -7206},
{'D1': 1693773231, 'D2': -31374},
{'D1': 39988676, 'D2': 4369},
{'D1': 3807660413, 'D2': -21373}],
{'C2': 1881554205434207390,
'C3': [236, 164, 182, 221, 162],
'C4': {'E1': 2393024918,
'E2': [573540766, 4112309805, 2561586277],
'E3': 109,
'E4': [-0.9148699045181274,
-0.7170283794403076,
0.9958321452140808,
0.6096255779266357,
-0.17140017449855804]},
'C5': 234,
'C6': 3854292090911644003}},
'A3': {'F1': 15950, 'F2': -25637}}
Пример 2
Двоичные данные:
b'LBWA\xbeI\xab\x9b\xf7l\xe7\xbfE\xa1\x95\xd2!M\x1b}&\x11\x04\x8am\x00\x00\x00'
(b'\x9d\x00\x00\x00\xf7i_5\x9fh\x06,\xcb\x06CV\xb3\xbe\xc6\xb5\xa7\xd6?l,n=.'
b' \x00&\x00,\x002\x00\xfb&6yK\x14\xfd\xc3$r@\xaa\x13R\x05\x0fR%Ye'
b'\xd9\x90\xf4[\xbdq+H?5\xa8B\xbe\x9b\x0eI? i\x1e\xbf=\xa4\xb6\xbe\x04\x00\x00'
b'\x008\x00T\xa4\xa95ME\xceC\x05\x00\x00\x00@\x00\xd5Y\x8b\x12\x04\x00\x00'
b'\x00E\x00%\x06\x00\x00\x00U\x00\x00\x00\xee\xf3\xb3\x86\xf7\xd6y%'
b'\xf8\xac\xb7tL')
Результат разбора:
'A1': -0.7320516624843589,
{'A2': {'B1': 9014883886774460741,
'B2': 4390,
'B3': -30204,
'B4': {'C1': [{'D1': 895445495, 'D2': 26783},
'D1': 113978374, 'D2': 22083},
{'D1': 3049701043, 'D2': -10585},
{'D1': 1848405055, 'D2': 11837}],
{'C2': 4885918843658675284,
'C3': [251, 38, 54, 121, 75],
'C4': {'E1': 311122389,
'E2': [616824084, 329924722, 1376716114, 3647297829],
'E3': 37,
'E4': [-0.053700029850006104,
0.7819128632545471,
-0.19009478390216827,
0.7853791117668152,
-0.6187915802001953,
-0.35672178864479065]},
'C5': 238,
'C6': 17880831859727184883}},
'A3': {'F1': -18516, 'F2': 19572}}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xd0 0x4e 0x50 0x47 0x59
, за которой следует
структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | float |
2 | int64 |
3 | Структура B |
4 | double |
5 | Адрес (uint16) структуры E |
6 | Массив uint16, размер 7 |
Структура B:
Поле | Описание |
---|---|
1 | int16 |
2 | Массив uint32, размер 2 |
3 | int16 |
4 | Структура C |
5 | float |
Структура C:
Поле | Описание |
---|---|
1 | uint16 |
2 | Адрес (uint32) структуры D |
Структура D:
Поле | Описание |
---|---|
1 | float |
2 | double |
Структура E:
Поле | Описание |
---|---|
1 | uint32 |
2 | Размер (uint32) и адрес (uint32) массива структур F |
3 | int8 |
Структура F:
Поле | Описание |
---|---|
1 | uint32 |
2 | Массив int8, размер 4 |
3 | uint64 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'\xd0NPGY\xc7\xdd\xda=\x7f\x12\x02Op\xe2\xebfc~\nD\x17\xf8:\x05\xeb\x1e\x9b'
(b'\xc4\xf8\xb6?\x00\x00\x00\xb0\xcaJ?\x94N\xa4`\xc6\xe3\xed?k\x00\x89:\xcc'
b'\x846\xbf\x87\xe8\xc0\x15+\xaf\xe3\xcf\x81\xcfi\xbf0\xaa<\xbd\x85\xa5\xed?G'
b'\xf8\xa3\x15\x7f\x99\n\xd0{\tF\xa3u\xdf\x99\x8f\x13#\xceS^\x16\xdcd\xfc'
b'\x14h\x10n>\xf2G\xb8\x88\xb2\t\x02\x00\x00\x00K\x00\x00\x00`')
Результат разбора:
'A1': 0.10686831921339035,
{'A2': 7416270183385404031,
'A3': {'B1': 32355,
'B2': [4162274314, 518718778],
'B3': -15205,
'B4': {'C1': 46840,
'C2': {'D1': -0.9133225083351135, 'D2': 0.9264553733858687}},
'B5': 0.7921552658081055},
'A4': 0.9340545547042489,
'A5': {'E1': 162695352,
'E2': [{'F1': 363067463,
'F2': [127, -103, 10, -48],
'F3': 10347547315203869051},
'F1': 1406018323,
{'F2': [94, 22, -36, 100],
'F3': 5184274763499443452}],
'E3': 96},
'A6': [14985, 33996, 48950, 59527, 5568, 44843, 53219]}
Пример 2
Двоичные данные:
b'\xd0NPGY\x9c\xb6\xb4\xbeC\xa2\\\x0cQ\x1b>\x94\xe0S\xc9\xc3\xc7\xc9\x12'
(b'\x90\x8a\xb9\x86\xc5\xda??\x00\x00\x00\r\x8ds= \x82\xb4w\xce\xde\xca\xbfk'
b'\x00\x97\xea\x03\xce\xd1`\x95\xba@\xf0\xc4\x12\xd3\xe9w\x1d\x06?\xf0>>\x9eL'
b'\xf6\xb7\xbf]\xab@\xa3\\\xb1\xd7\xbbs\x8e\xc7\x90F\xabX\xb8\x15'
b'\x8f\x1e\xad\xca\x054;c\xef\xf5-"\x9c\x85\x1d\x9e9\xbd\xe4\x02\x00\x00\x00K'
b'\x00\x00\x00d')
Результат разбора:
'A1': -0.35295569896698,
{'A2': -7764738672626458045,
'A3': {'B1': 21472,
'B2': [3385312201, 3112865810],
'B3': -14970,
'B4': {'C1': 16346,
'C2': {'D1': 0.5238870978355408, 'D2': -0.0936019789062319}},
'B5': 0.05946068838238716},
'A4': -0.20992451519943334,
'A5': {'E1': 3837606302,
'E2': [{'F1': 2738924381,
'F2': [92, -79, -41, -69],
'F3': 13283555420494335603},
'F1': 2904461077,
{'F2': [-54, 5, 52, 59],
'F3': 2127278069616340835}],
'E3': 100},
'A6': [60055, 52739, 24785, 47765, 61504, 4804, 59859]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x43 0x49 0x5a 0x57 0x12
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | uint16 |
2 | Адрес (uint16) структуры B |
3 | Размер (uint32) и адрес (uint32) массива структур D |
4 | Массив int16, размер 3 |
Структура B:
Поле | Описание |
---|---|
1 | uint32 |
2 | uint16 |
3 | uint32 |
4 | Массив char, размер 4 |
5 | Структура C |
6 | float |
Структура C:
Поле | Описание |
---|---|
1 | uint64 |
2 | Размер (uint32) и адрес (uint16) массива uint64 |
Структура D:
Поле | Описание |
---|---|
1 | float |
2 | Размер (uint16) и адрес (uint16) массива uint32 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'CIZW\x12A\x0b\x00\'\x00\x00\x00\x04\x00\x00\x00{B\xfa"&\xa8\x03\xe2'
(b'\x87\xe3G<\x95\xbf\x1b\xb1\x90XP\xdd\x98v\xb7Jh\xfc\x96\xb8\x80T\xcd\x80'
b'\x0ebyuo\xa9\xc0\x97\xf5\x029\xa0\x83\x00\x00\x00\x02\x00\x17\xbe'
b'\xe8\xea\x1c\xdajU\x9e2D\xdd\xa8E\xd1\x87w6\x87$E\xa3\xfe\xf6\x9cI'
b'\x8f\x0f<\x140\xd9\x0eOj\xfe\xf1/\xce\xcf\xf3\xc1B\xbd\xf8~\xeb\xe29\r154#'
b'&(\xc1>\xed\xb4\xf9\x00\x03\x00G\xbe\xd9$$\x00\x04\x00S?Y\xab\xb6\x00'
b'\x04\x00c\xbf\x08T\xbe\x00\x02\x00s')
Результат разбора:
'A1': 16651,
{'A2': {'B1': 1248394390,
'B2': 47232,
'B3': 1422753806,
'B4': 'byuo',
'B5': {'C1': 12231943666498379907,
'C2': [16323265269526282011, 12794823645697963703]},
'B6': -0.45491111278533936},
'A3': [{'D1': 0.46427133679389954, 'D2': [3664401822, 843373992, 1171359607]},
'D1': -0.42410385608673096,
{'D2': [914826309, 2751395484, 1234112316, 338745614]},
'D1': 0.8502763509750366,
{'D2': [1332412145, 802082803, 3242376696, 2129388089]},
'D1': -0.5325430631637573, 'D2': [221328692, 589703361]}],
{'A4': [17146, 8742, -22525]}
Пример 2
Двоичные данные:
b'CIZW\x12\xd9\x17\x00/\x00\x00\x00\x02\x00\x00\x00_\xd3\\ \xc3]\xe8k'
(b'Tb\x8e\x1a\x9a\xe3\x8a\xb4\xe8>\x95\xafSD\x06\xa1eiY\xfd=\xf7\xd2(\xba_$\xb7'
b'Z\x85\xb6D\x02hnbf\x8c\xb8\xb1N\xf6\x04x\xfd\x00\x00\x00\x03\x00\x17?L![['
b"\x10\xb7\x1f\xb4'\x8c\xfe\xf1g\x8f\x91\xdc}\x0f\xe0>\x11\xbf\xd1\x00"
b'\x02\x00O\xbco{\xb7\x00\x02\x00W')
Результат разбора:
'A1': 55575,
{'A2': {'B1': 683302692,
'B2': 46938,
'B3': 2243314690,
'B4': 'hnbf',
'B5': {'C1': 10140049513717725437,
'C2': [7733914822573220746,
13035737934036419590,
11629817447975876562]},
'B6': 0.7973839640617371},
'A3': [{'D1': 0.1423332840204239, 'D2': [1527822111, 3022490878]},
'D1': -0.014616898261010647, 'D2': [4050096017, 3699183584]}],
{'A4': [-11428, 8387, 24040]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x22 0x45 0x4b 0x48 0x4f
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | Адрес (uint16) структуры B |
2 | uint32 |
3 | uint64 |
4 | Массив int8, размер 5 |
Структура B:
Поле | Описание |
---|---|
1 | Структура C |
2 | Массив структур D, размер 3 |
3 | Адрес (uint16) структуры E |
4 | Размер (uint16) и адрес (uint32) массива int16 |
Структура C:
Поле | Описание |
---|---|
1 | int16 |
2 | Размер (uint16) и адрес (uint16) массива char |
Структура D:
Поле | Описание |
---|---|
1 | uint32 |
2 | uint32 |
3 | int32 |
4 | uint32 |
Структура E:
Поле | Описание |
---|---|
1 | float |
2 | uint64 |
3 | int16 |
4 | Массив int8, размер 3 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'"EKHO\x004\x11\xbc\x89\xd7\xb2C\xb2\x9f\xca\xf9\x15\xd4\xb5\x13b;\xf2iywc'
(b'i\xbfB\x06\xa6\xd2q\x8c\xc1qQ|"\x9f\x91cg\xda\x88\x03\t*\xbdmG\x13\x00\x05'
b'\x00\x18\x8f\xf2\xc7\xecoc\xae\x96\x01\xa5\xab\x94\x93\x8aF\xd4T\x15'
b"\x9dr\xfe'X\x98\xbc<\x18\xa1n\x0f\xa2\x10\x9d\xa1\xe6<10\xf28/7\x03|(\x16"
b'\x96y\x00\x1d\x00\x03\x00\x00\x00.')
Результат разбора:
'A1': {'B1': {'C1': 18195, 'C2': 'iywci'},
{'B2': [{'D1': 2415052780,
'D2': 1868803734,
'D3': 27634580,
'D4': 2475312852},
'D1': 1410702706,
{'D2': 4263991448,
'D3': -1136912223,
'D4': 1846518288},
'D1': 2644633148,
{'D2': 825291320,
'D3': 792134524,
'D4': 672568953}],
'B3': {'E1': -0.7579139471054077,
'E2': 15164056182790913058,
'E3': -24687,
'E4': [99, 103, -38]},
'B4': [-30717, 2346, -17043]},
'A2': 297568727,
'A3': 12845306961565652436,
'A4': [-75, 19, 98, 59, -14]}
Пример 2
Двоичные данные:
b'"EKHO\x00/a\xbd\x19u\x18\xc8HF\xee\xe5|\\\t\x92\x0c\xb8\xe6yi\xbfa'
(b'\x9a\xb5\xa2\x95\xe9\x99\xa0\xdb^\x1b\x91\xbc\xe9J\xf6\xf2\xea4\x9b\x1a'
b'\xc1\x00\x02\x00\x18o\xc0\xfe\x1f\x14\x18\x1a\xcb`q\x19\xd5\xeeSK'
b'\xf7\xbe\xff\xa4nB\xd26SG\xb3\xab\xb3\x9eF\xc3\xect\xeb\xdf/\x14N8J\xeb;\xd0'
b'c\xedqV\\\x00\x1a\x00\x02\x00\x00\x00+')
Результат разбора:
'A1': {'B1': {'C1': 6849, 'C2': 'yi'},
{'B2': [{'D1': 1874918943,
'D2': 337124043,
'D3': 1618024917,
'D4': 3998436343},
'D1': 3204424814,
{'D2': 1121072723,
'D3': 1202957235,
'D4': 2655437804},
'D1': 1961615151,
{'D2': 340670538,
'D3': -348401565,
'D4': 3983627868}],
'B3': {'E1': -0.8812668919563293,
'E2': 11715526851712212507,
'E3': -28228,
'E4': [-23, 74, -10]},
'B4': [-3350, 13467]},
'A2': 1639782773,
'A3': 1785756721745329244,
'A4': [9, -110, 12, -72, -26]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4e 0x4f 0x53
, за которой следует структура A.
Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль
struct.
Структура A:
Поле | Описание |
---|---|
1 | Структура B |
2 | Адрес (uint32) структуры E |
3 | int16 |
4 | Размер (uint32) и адрес (uint16) массива uint32 |
Структура B:
Поле | Описание |
---|---|
1 | uint16 |
2 | float |
3 | uint64 |
4 | int8 |
5 | double |
6 | Адрес (uint32) структуры C |
7 | uint8 |
Структура C:
Поле | Описание |
---|---|
1 | float |
2 | uint8 |
3 | uint8 |
4 | Массив структур D, размер 3 |
5 | int16 |
6 | double |
Структура D:
Поле | Описание |
---|---|
1 | int32 |
2 | uint8 |
Структура E:
Поле | Описание |
---|---|
1 | Массив char, размер 7 |
2 | uint16 |
3 | int64 |
4 | uint16 |
5 | uint32 |
6 | double |
7 | uint64 |
8 | Адрес (uint16) структуры F |
Структура F:
Поле | Описание |
---|---|
1 | float |
2 | int8 |
3 | uint16 |
4 | int64 |
5 | uint8 |
6 | Массив uint16, размер 5 |
7 | uint16 |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'NOS\xd9\xbf?6K\xff}\x84\xbe;\xde\x8f\x19\xb6\xce\xbf\xd4\x05\xf9\x00-'
(b'z\\\x00\x00\x00+Z\x00\x00\x00f%y\x00\x00\x00\x04\x00\x8f>\xc4\xd8\xb87'
b'5s8\x00\xd0\xb2\xf4\x01\xbe\xe5\x02~V\x8fG\x90\x92\x89\xbf\xd0\x8d\xfezp'
b'\xb6\xf4?k\x93\x06\xd4\xc6\xbe{B\xb1\xed\x9c\x9f8&\xb0XY\xf3X\x9fa'
b'\xd9\x97\xc2\x95\xc6Hsjlrgdj[\xe8\x0c\xaf\xff\xc5;\x85\xc0\xc7Qk\xd1\xb8\xcf'
b'U\xbf\xe3\x03-\xab\xfb\xb9\xfe\x96\xb3L\x1bZ\x15\x9c}\x00J\xd1\xd9?\x17c'
b'\xb1\xf3b\xc4\\y\x98a\x08\x01l')
Результат разбора:
'A1': {'B1': 55743,
{'B2': 0.7120971083641052,
'B3': 9044563116013066678,
'B4': -50,
'B5': -0.31286454217289417,
'B6': {'C1': 0.38446593284606934,
'C2': 55,
'C3': 53,
'C4': [{'D1': 1933050064, 'D2': 178},
'D1': -201212187, 'D2': 2},
{'D1': 2119601991, 'D2': 144}],
{'C5': -28023,
'C6': -0.25866662938174945},
'B7': 90},
'A2': {'E1': 'sjlrgdj',
'E2': 23528,
'E3': 914230471951761607,
'E4': 20843,
'E5': 3518549845,
'E6': -0.5941379889534912,
'E7': 10859106806879591549,
'E8': {'F1': 0.9202121496200562,
'F2': -44,
'F3': 50878,
'F4': 8881857049221085222,
'F5': 176,
'F6': [22617, 62296, 40801, 55703, 49813],
'F7': 50760}},
'A3': 9593,
'A4': [3520675607, 1672606562, 3294394776, 1627914604]}
Пример 2
Двоичные данные:
b'NOS\xfbq>\xda\xa8{\xd15\xe6\x0b\xe7f{\x9c\xdf?\xed\x9d\x89ll\x88\x04\x00\x00'
(b'\x00+Q\x00\x00\x00f\x16F\x00\x00\x00\x02\x00\x8f\xbfTL\x08\xc8*\xe7\xcek'
b"<\xba\xa6p\x18\xf1W\xdfzN\xb1\x18\xc3'\xbf\xbe\xab\x12\xfa\xad\xe6@>\xc9"
b'\x9f\xef\xee\x8e0hK\x7f\x8a\x93W\xcc\xb7h<\xe1\xdd\xdd\x1dh\xc1\xb1a\x1e'
b'k\xf6lvukqviM\xf0\xc2[\x9a\xd6j\x1f\x0e*\xea\xb90\xd9\x1ba\xbf\xd8\xe6'
b"1\xd7\xb1F\x80\xceb\xe8\x1f\xfb\x1cu\xf5\x00J\xe1\x98T\x0f'\xc5\x03\xfc")
Результат разбора:
'A1': {'B1': 64369,
{'B2': 0.4270666539669037,
'B3': 15075208266493885340,
'B4': -33,
'B5': 0.9254805677085192,
'B6': {'C1': -0.8292851448059082,
'C2': 200,
'C3': 42,
'C4': [{'D1': -405902532, 'D2': 186},
'D1': -1502603023, 'D2': 87},
{'D1': -545632591, 'D2': 24}],
{'C5': -15577,
'C6': -0.11979788417911497},
'B7': 81},
'A2': {'E1': 'lvukqvi',
'E2': 19952,
'E3': -4441786361776763350,
'E4': 60089,
'E5': 819534689,
'E6': -0.38904996932715363,
'E7': 14871704143585375733,
'E8': {'F1': 0.3937983214855194,
'F2': -18,
'F3': 36400,
'F4': 7515240636352023735,
'F5': 104,
'F6': [15585, 56797, 7528, 49585, 24862],
'F7': 27638}},
'A3': 5702,
'A4': [3784856591, 667223036]}
Задача №12
Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4c 0x4e 0x49 0x4f 0x3c
, за которой следует
структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать
модуль struct.
Структура A:
Поле | Описание |
---|---|
1 | double |
2 | Массив char, размер 2 |
3 | Структура B |
Структура B:
Поле | Описание |
---|---|
1 | int32 |
2 | Массив адресов (uint16) структур C, размер 3 |
3 | uint32 |
4 | uint32 |
5 | Структура D |
Структура C:
Поле | Описание |
---|---|
1 | Массив int32, размер 4 |
2 | double |
3 | uint16 |
Структура D:
Поле | Описание |
---|---|
1 | uint8 |
2 | double |
3 | int8 |
4 | float |
5 | int16 |
6 | Массив uint8, размер 5 |
7 | float |
Ниже показаны примеры разбора двоичного формата.
Пример 1
Двоичные данные:
b'LNIO<?\xd0\xc2-\xb2\x1d<lgq=\xd8*g\x00:\x00T\x00n\xa9u\n\xec\xbc\xdb\xa3'
(b'\xddg\xbf\xdbq\xbd;\x06U\xa0\xb3\xbf\n\xa9\x84\x1b\x8e\x84\xf8kV\xb6\xbe\x9f'
b'K\x91e!\xe7\x14\xc4v\x99\x9d\xc6\x81\xf4\xee\xbd\x8b\xaf\x99?\xe9\x9a\xb4Iz'
b'\x00\xa8\xeb\xb3\xcd\xb3=3/\xea\xe4\x81~J\x97\x02S+\xd5\xd7\xbf\xeb\x13\xa5'
b'\tU\\Z\x9f\xd7+\x95t B\x1cS\xb9\x82\x8b\x17V\xdeRx\xd8\xbf\xe5{\xed\x97&'
b'\xf2\x14g\xe5')
Результат разбора:
'A1': 0.2618517150303379,
{'A2': 'gq',
'A3': {'B1': 1037576807,
'B2': [{'C1': [1696720660, -998860387, -964561682, -1114919015],
'C2': 0.8001347956742579,
'C3': 60339},
'C1': [-843891405, 803923073, 2118817538, 1395381719],
{'C2': -0.846148031453491,
'C3': 40919},
'C1': [731214880, 1109152697, -2104813738, -565020456],
{'C2': -0.6713779403867783,
'C3': 26597}],
'B3': 2843020012,
'B4': 3168510941,
'B5': {'D1': 103,
'D2': -0.4288170887387768,
'D3': -77,
'D4': -0.5416491031646729,
'D5': 7054,
'D6': [132, 248, 107, 86, 182],
'D7': -0.31112340092658997}}}
Пример 2
Двоичные данные:
b'LNIO<?\xe2\x9e\xe5\xdf[\x05\x18gx@P\x93\x14\x00:\x00T\x00nV\t\xb2}\x14-\xec'
(b'5\xd2\xbf\xc1\xb6\x92I\xaf\xc00\xbb\xbe7kB\xcc\x8a\x02~*QY\xbe\xf4\x10\x0fM:'
b'\xf0\xc5\x90:Q\xb0Qz\x06l\xb9Et\xf8\xbf\xd3\x95i\xcdo\xf6\x1c\xdd\xa9'
b'\x8aY\x8anbK\x03\xd0\xc3\xd9\xa5I\x1d\xb1T\xe9\xbf\xea\xa4\xd3;\x16\xaa\x9a'
b'\xaeK\x87\xc7([2\x8fU\x8b\x80u/\xa9jt\xac\x0c?\xe7\xa2\xe1\xab5)\xba8\xd9')
Результат разбора:
'A1': 0.5818967211163537,
{'A2': 'gx',
'A3': {'B1': 1079022356,
'B2': [{'C1': [1295708357, -1875226192, 1366951532, -1186630408],
'C2': -0.30599446356049653,
'C3': 56745},
'C1': [-1973843346, 1649083344, -1009146551, 498160873],
{'C2': -0.8326202539513645,
'C3': 44619},
'C1': [-2016991141, 848254347, -2139803735, 1786031116],
{'C2': 0.7386329978847279,
'C3': 14553}],
'B3': 1443476093,
'B4': 338553909,
'B5': {'D1': 210,
'D2': -0.1383841380879871,
'D3': -69,
'D4': -0.17912009358406067,
'D5': -13174,
'D6': [2, 126, 42, 81, 89],
'D7': -0.4766850173473358}}}