ИКБО-14-22

Вариант №1

Задача №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]}}

Вариант №2

Задача №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]}

Вариант №3

Задача №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}}}

Вариант №4

Задача №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]}

Вариант №5

Задача №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}

Вариант №6

Задача №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}}

Вариант №7

Задача №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]}

Вариант №8

Задача №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]}

Вариант №9

Задача №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}

Вариант №10

Задача №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}

Вариант №11

Задача №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

Задача №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}

Вариант №13

Задача №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}}

Вариант №14

Задача №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}}

Вариант №15

Задача №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}

Вариант №16

Задача №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}}

Вариант №17

Задача №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}}

Вариант №18

Задача №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]}}}

Вариант №19

Задача №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}}

Вариант №20

Задача №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}

Вариант №21

Задача №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}

Вариант №22

Задача №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}}

Вариант №23

Задача №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}

Вариант №24

Задача №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]}}

Вариант №25

Задача №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}

Вариант №26

Задача №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}

Вариант №27

Задача №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}

Вариант №28

Задача №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}

Вариант №29

Задача №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}

Вариант №30

Задача №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]}

Вариант №31

Задача №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}

Вариант №32

Задача №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}

Вариант №33

Задача №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]}}

Вариант №34

Задача №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}

Вариант №35

Задача №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}}

Вариант №36

Задача №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]}

Вариант №37

Задача №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]}

Вариант №38

Задача №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]}

Вариант №39

Задача №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]}

Вариант №40

Задача №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}}}