ИНБО-11-22

Вариант №1

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x53 0x46 0x52 0x4b 0x5e, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Массив char, размер 4
2 Размер (uint16) и адрес (uint16) массива структур B
3 int32
4 int64
5 Адрес (uint32) структуры D
6 Адрес (uint16) структуры E
7 uint64

Структура B:

Поле Описание
1 int8
2 Структура C

Структура C:

Поле Описание
1 float
2 int8
3 int32

Структура D:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива uint32
2 uint16
3 int16
4 uint8
5 int64
6 int32

Структура E:

Поле Описание
1 float
2 Размер (uint32) и адрес (uint32) массива uint8

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

Пример 1

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

(b"SFRK^gjtv\x02\x00'\x00?\xd8\xc1>\x07v\xe5\xb1\xd1T\x8f%C\x00\x00"
 b'\x00a\x00\xb8y\xcc\xda(\xc8\x8eh\xcc\x82W;\xbf\xba\x1a\xb7|Ezo\xd2'
 b'"\xbf\x06\x19kO\xb4\x13\xf2\xd2xv\xfa$\xbc\x02\x00\x00\x00;\x00\x00\x00\x83'
 b'\xf0uWyY\r-\x9bh\x1b>~E2\xda\xb2[\xaa\x80\xd7\x97\xeeJ\xc7>\x05\x00\x00'
 b'\x00\\\x00\x00\x00')

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

{'A1': 'gjtv',
 'A2': [{'B1': -52,
         'B2': {'C1': -0.7318040132522583, 'C2': -70, 'C3': 1165801242}},
        {'B1': 122,
         'B2': {'C1': -0.6360234618186951, 'C2': 6, 'C3': -1269863655}}],
 'A3': 1052891199,
 'A4': 2706475160682460679,
 'A5': {'D1': [2027090451, 3156540022],
        'D2': 61571,
        'D3': 22389,
        'D4': 121,
        'D5': 9096738433428950361,
        'D6': -1294323131},
 'A6': {'E1': 0.38924354314804077, 'E2': [91, 170, 128, 215, 151]},
 'A7': 7534179304432499128}

Пример 2

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

(b"SFRK^yrue\x02\x00'\x00\x89d\xeeI\xe1_]^\xf0H\xd5\xef[\x00\x00\x00v\x00\x03"
 b'\x87\x81\x98snS\xa2\x92\x9ay\xf9\xbe\xb3\xca\xe5\x03\x19\xaa\x15\xd7H\xbfHo'
 b'LEd\xc1\x10m\x92\xfbw#m&\x9a\x1a\x95\xeav\xe9bB\x8ea03\x96\xc2M*'
 b'\xb9\x91\x9c\x14S\x00E\x08\x00\x00\x00;\x00\x00\x00\xa2H\xaa\x92\tJ8\xc4\x99'
 b'\x12\xc2\x98%%\xae\x95:\xf5m\tOG>\x02\x00\x00\x00t\x00\x00\x00')

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

{'A1': 'yrue',
 'A2': [{'B1': -110,
         'B2': {'C1': -0.48725587129592896, 'C2': -77, 'C3': 419685834}},
        {'B1': -86,
         'B2': {'C1': -0.7845318913459778, 'C2': 72, 'C3': 1682263151}}],
 'A3': 1240360073,
 'A4': -1164944731392876575,
 'A5': {'D1': [2456621249,
               1831041019,
               2501548582,
               1659467498,
               811699778,
               1304598067,
               2626795818,
               1157649172],
        'D2': 18594,
        'D3': -27990,
        'D4': 9,
        'D5': 2709128561008326730,
        'D6': 982887973},
 'A6': {'E1': 0.19463743269443512, 'E2': [245, 109]},
 'A7': 11696814099970230019}

Вариант №2

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x54 0x49 0x59, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Размер (uint16) и адрес (uint16) массива структур B
2 Размер (uint16) и адрес (uint16) массива char
3 Структура E
4 uint32

Структура B:

Поле Описание
1 Адрес (uint16) структуры C
2 Массив char, размер 4

Структура C:

Поле Описание
1 double
2 int16
3 Адрес (uint16) структуры D

Структура D:

Поле Описание
1 uint16
2 int32

Структура E:

Поле Описание
1 int8
2 Размер (uint16) и адрес (uint16) массива uint64
3 float
4 uint32
5 int8
6 int32
7 uint16

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

Пример 1

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

(b'TIY\x04\x00k\x00\x02\x00\x83\x00\xa6\x02\x00\x85\x00\x07\x96r\xbe'
 b'\xcc\xd6\xbe\xdc\xcaO\xe2\xed\xa7\t\xe7$@\x9b\xddV\xfe!\xa1o\xea\xcc\xa7\xe2'
 b'fdp\xef?|\xe3#\x00D\xb3\x95\xbb\x83\xbe\xc0\xe3T\xf0\x9eu\xbe?\xba{5\x00Q'
 b'\xc6\xf4l\xfb8\xaa\xc25CZ\xc0\xe5?\xf1\x86G\x00\xc0\x19\x88\x05\xa23\x84'
 b'\xbfr\x08\xb2\x1b\xdc?\xc0\x08Y\x00)\x00ccoj;\x00ugeaM\x00apny_\x00sskpm'
 b'ft\xe0\x85j0\x7f$O\x12\x976\x95,\x83\xfe\xa0')

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

{'A1': [{'B1': {'C1': 0.982469750354761,
                'C2': -7300,
                'C3': {'D1': 65110, 'D2': -361783007}},
         'B2': 'ccoj'},
        {'B1': {'C1': 0.11898225181074817,
                'C2': 31674,
                'C3': {'D1': 45892, 'D2': -1098663019}},
         'B2': 'ugea'},
        {'B1': {'C1': 0.6797305405326217,
                'C2': -30991,
                'C3': {'D1': 50769, 'D2': 956001524}},
         'B2': 'apny'},
        {'B1': {'C1': 0.43919039559386186,
                'C2': 2240,
                'C3': {'D1': 6592, 'D2': 866256264}},
         'B2': 'sskp'}],
 'A2': 'mf',
 'A3': {'E1': -90,
        'E2': [5702822874080206964, 11600853917658158866],
        'E3': -0.2369004338979721,
        'E4': 3703494348,
        'E5': -54,
        'E6': -1477582257,
        'E7': 59145},
 'A4': 3717939236}

Пример 2

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

(b'TIY\x04\x00k\x00\x02\x00\x83\x00\xf5\x02\x00\x85\x00\xaa\xbb\xd8>$\x90\xc6w'
 b'\x07\xdcL\xd3qiL|\xb58\xa6v\x12D_\x90\x9b\x8czX\xb1i3\xe5?\xf5\x8a#'
 b'\x00\xcc\x1d\x19$\xf8=VR\xd6\xa6\x8e\x14\xeb\xbf\xa4\x155\x00\xb9'
 b'\x0e\xff\xbf\xccEP\xbb \x9dZp\xe7??\xb7G\x00\xc7\xd0\xf4\xb1\x98\xf4p'
 b'{\xc6e\x93C\xe6?L\xfcY\x00)\x00angd;\x00znohM\x00wsls_\x00miadlm\xc8\x9f\x1b'
 b'\x96\xf7\xdd\xcd\xb9\xcf\xa8XH\xff\x12\xeb\xff')

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

{'A1': [{'B1': {'C1': 0.66252598417107,
                'C2': -29963,
                'C3': {'D1': 4726, 'D2': -1685037244}},
         'B2': 'angd'},
        {'B1': {'C1': -0.8462594278849547,
                'C2': 5540,
                'C3': {'D1': 7628, 'D2': 1039672345}},
         'B2': 'znoh'},
        {'B1': {'C1': 0.7324650830176811,
                'C2': -18625,
                'C3': {'D1': 3769, 'D2': 1171046399}},
         'B2': 'wsls'},
        {'B1': {'C1': 0.6957489955710638,
                'C2': -948,
                'C3': {'D1': 53447, 'D2': -191319564}},
         'B2': 'miad'}],
 'A2': 'lm',
 'A3': {'E1': -11,
        'E2': [13388601322687406024, 18440853986838358223],
        'E3': 0.42330676317214966,
        'E4': 2009501732,
        'E5': 7,
        'E6': 1909673180,
        'E7': 19561},
 'A4': 2788734332}

Вариант №3

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x45 0x42 0x53, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 uint16
2 Адрес (uint16) структуры B
3 uint16
4 double

Структура B:

Поле Описание
1 uint32
2 Адрес (uint32) структуры C
3 Размер (uint32) и адрес (uint16) массива адресов (uint16) структур D
4 Размер (uint16) и адрес (uint16) массива uint64
5 double
6 Размер (uint32) и адрес (uint32) массива int32
7 int8

Структура C:

Поле Описание
1 int32
2 int32
3 Размер (uint32) и адрес (uint32) массива char

Структура D:

Поле Описание
1 int32
2 int8

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

Пример 1

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

(b'EBSMZi\x00\\\x0f,\xa5T\x1a#%\xef?cn\n\xcd\xa1\x03\xd5\xd7\x1a\x18\x02'
 b'\x00\x00\x00\x11\x00\x00\x00*\r\xe0\x01\xa4\nO\x1a\xeb;#\x00(\x00I\x16F'
 b'\xba\x15\x07\xb4\x84Yp91p\xe6\x85\xa6z\xf7\x1f\\\xf7\x89\xde[\xf1\xed\x89'
 b'\xd3G\xaa\xd2\xbdms\xbd\r\xee\x1c\x84%kBV\xae\x1ce-_\x05\x1f@2\x19\xba#'
 b'\xd6H\xb9v\n\x13\x00\x00\x00\x02\x00\x00\x00-\x00\x05\x001\x00\x08'
 b'\xd8\xc0[\x10\x1d\xd4\xbf\x04\x00\x00\x00Y\x00\x00\x00S')

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

{'A1': 23117,
 'A2': {'B1': 175552840,
        'B2': {'C1': 60935434, 'C2': 404412373, 'C3': 'cn'},
        'B3': [{'D1': 31460650, 'D2': -92}, {'D1': -350597366, 'D2': 59}],
        'B4': [9562275698715268681,
               11999250151735128153,
               6619880197776734074,
               13678182243746049521,
               2703317485087454061],
        'B5': -0.31427391968043183,
        'B6': [-1370078613, 1596810524, 843063045, -702301671],
        'B7': 83},
 'A3': 3932,
 'A4': 0.9732833399076859}

Пример 2

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

(b'EBS\xd3\x15h\x00\xd7r\x044Y\x98\x12\x86\xd6?so\xc8\xaf\x1b\xdcX$7{\x02'
 b'\x00\x00\x00\x11\x00\x00\x002\xca\\\x93&,\x94"\x08\xb4)\x1el]\x00#\x00'
 b'(\x00-\x00+\x8d\x1f\x00\x02\xbf\xfd\xa1O3z\xd8-\x0e\xf9?!;\xae\x0e'
 b"\xaet\r\xc1\x932\x97\xefN\xeb\xf8\x06Jy\x84]/\x12\xb9\x0c*\x19v\x1b&@'\xea"
 b'\xce\xa1[\xb8\x13\x00\x00\x00\x03\x00\x00\x002\x00\x05\x008\x00\xc0\x9d'
 b'Ai\xb7I\xa0?\x02\x00\x00\x00`\x00\x00\x00\xbe')

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

{'A1': 5587,
 'A2': {'B1': 3093012942,
        'B2': {'C1': -602165304, 'C2': 2067211352, 'C3': 'so'},
        'B3': [{'D1': -1822635470, 'D2': 38},
               {'D1': 136483884, 'D2': -76},
               {'D1': 1567366697, 'D2': 0}],
        'B4': [11672695824527101227,
               4609731283658617679,
               13910903114936761121,
               502410082711450259,
               916783993788332362],
        'B5': 0.03181241187922579,
        'B6': [460724522, -366526426],
        'B7': -66},
 'A3': 29399,
 'A4': 0.35193314435747447}

Вариант №4

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x9f 0x57 0x42 0x47, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 double
2 Размер (uint32) и адрес (uint32) массива char
3 float
4 uint8
5 uint8
6 double
7 double
8 Структура B

Структура B:

Поле Описание
1 Массив адресов (uint16) структур C, размер 3
2 Структура D
3 uint16
4 int16
5 uint64
6 float
7 Адрес (uint16) структуры E
8 int64

Структура C:

Поле Описание
1 uint16
2 uint8

Структура D:

Поле Описание
1 float
2 float
3 double
4 int64
5 int16

Структура E:

Поле Описание
1 float
2 uint16
3 Массив uint8, размер 4
4 uint8
5 Размер (uint32) и адрес (uint16) массива uint8

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

Пример 1

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

(b'\x9fWBG\xbf\xd5\x7f\x01\xa7\xeaE\xa8\x00\x00\x00\x03\x00\x00\x00d\xbfBD$'
 b'\xa8!?\xd2\xb8\xea\x81\xa5\x7fp\xbf\xee\xb7|\x1f\xd4\x9c\xb8\x00g\x00j\x00m'
 b'?mB\x13>\xe9\xc7\x97\xbf\xc3{\xfcX\xd0lPln\xf9s*\xa77>\x9c\x05\xf6\xb6'
 b'\xd5\x03\xe2O\xc0\x91\xf72\xa4\xaf\xbf=Iu\x00sXX\xce:[\x1a2\x8djjn)'
 b'\xcd]\x90\xd6\x02\\I\xd1\xd7\r\x83>J\xc3\xe2\x84\x14\x10Dx\x8d\x9d\x00\x00'
 b'\x00\x03\x00p')

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

{'A1': -0.335876859645476,
 'A2': 'jjn',
 'A3': -0.7588522434234619,
 'A4': 168,
 'A5': 33,
 'A6': 0.2925363794401994,
 'A7': -0.959898054284074,
 'A8': {'B1': [{'C1': 10701, 'C2': 93},
               {'C1': 37078, 'C2': 2},
               {'C1': 23625, 'C2': 209}],
        'B2': {'D1': 0.9267894625663757,
               'D2': 0.4566008746623993,
               'D3': -0.15222124420765448,
               'D4': 7813456676566546238,
               'D5': -25595},
        'B3': 63158,
        'B4': -11005,
        'B5': 16307464508881937583,
        'B6': -0.7394021153450012,
        'B7': {'E1': 0.19801285862922668,
               'E2': 33812,
               'E3': [16, 68, 120, 141],
               'E4': 157,
               'E5': [215, 13, 131]},
        'B8': 6366064823320064653}}

Пример 2

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

(b'\x9fWBG\xbf\xef\xa9\xb4\x08\x99?\x0e\x00\x00\x00\x07\x00\x00\x00d?b\xc7v'
 b'\xc1\xae?\xc2\xaa\x7f\xfd\xc9A\x18?\xd40\xa6\xccV\xbb<\x00k\x00n\x00q\xbe]UB'
 b'?H:\xa7?\xb0T\x01\x8f\xcd:\xd0\xdd\xed`\xb8yIDP\x0f\x99\x1eI\xf3\xd5:\xe5'
 b'\xe3\xef\x02\x89\x00#\xbc\xcc\xbb\xa7\x00v\x17\x08\x15jg\x13!\x08wyjefoj]'
 b'=\x90\xe9(]\xfd\xb9\xd3\x02\x1b>~\x9f\x9a0*o\xca\xd6\xf74\x00\x00\x00'
 b'\x02\x00t')

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

{'A1': -0.9894657295171514,
 'A2': 'wyjefoj',
 'A3': 0.885856032371521,
 'A4': 193,
 'A5': 174,
 'A6': 0.14582824603940803,
 'A7': 0.315469455289463,
 'A8': {'B1': [{'C1': 23869, 'C2': 144},
               {'C1': 59688, 'C2': 93},
               {'C1': 64953, 'C2': 211}],
        'B2': {'D1': -0.21614554524421692,
               'D2': 0.7821449637413025,
               'D3': 0.06378183136733218,
               'D4': -2455199876421958576,
               'D5': 3993},
        'B3': 7753,
        'B4': -3115,
        'B5': 4244048839545782307,
        'B6': -0.024991823360323906,
        'B7': {'E1': 0.24865570664405823,
               'E2': 12330,
               'E3': [111, 202, 214, 247],
               'E4': 52,
               'E5': [2, 27]},
        'B8': 1659600009426051336}}

Вариант №5

Задача №12

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

Структура A:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива адресов (uint16) структур B
2 Массив int32, размер 3
3 float
4 int16

Структура B:

Поле Описание
1 Структура C
2 int16
3 float
4 uint64

Структура C:

Поле Описание
1 Массив int16, размер 6
2 float
3 Структура D
4 uint8
5 Размер (uint32) и адрес (uint16) массива int8

Структура D:

Поле Описание
1 uint64
2 int16
3 float
4 int32
5 double

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

Пример 1

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

(b'BOK\x02\x00\x9d\x00\x00\x00\x92\t\xeaXr\xc17v\x13M\xf7\x88W\xe5\xbe>\x97>\t'
 b'H\x99\xaf,K\x01\x94\x82C\xab\x96\xcb\x1d\xfbox?o,F]\xb9t\xd0JP\x00\x97'
 b"T'>\xda+Ie`\x00i,\x1eV\xee\xbf\x0c\x02\x00\x00\x00\x1b\x00\xeb\xfaa(M\xbf"
 b'\t\xcb\xc5\x80t\xb4\xca`8!\x86\n\xfe\xda\x9f\xe7\x8a\xd6d\xd4\x99]\x14_'
 b'3\xbe!\x9f\xaf\xa3sg\x08=\xad;G\xf0\x82>\x94KCu\xb0W\xd8\x8e\xf9w\xba?'
 b'\x12\x02\x00\x00\x00\\\x00\xa2\x7fZh[\xbf\xb7aPZk\xc1\xe2X\x1d\x00^\x00')

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

{'A1': [{'B1': {'C1': [-20583, 19244, -27647, 17282, -26965, 7627],
                'C2': 0.9704586863517761,
                'C3': {'D1': 5390937093445135471,
                       'D2': 80,
                       'D3': 0.16340862214565277,
                       'D4': 1699294170,
                       'D5': -0.9480124347101189},
                'C4': 12,
                'C5': [9, 72]},
         'B2': -1301,
         'B3': -0.8013973832130432,
         'B4': 6974585385406286601},
        {'B1': {'C1': [2694, -9474, -6241, -10614, -11164, 23961],
                'C2': -0.17516738176345825,
                'C3': {'D1': 4397878782492385057,
                       'D2': 15277,
                       'D3': 0.2557394206523895,
                       'D4': 1967344532,
                       'D5': 0.10339317071370036},
                'C4': 18,
                'C5': [56, 33]},
         'B2': 32674,
         'B3': -0.8570610284805298,
         'B4': 6404894286895145399}],
 'A2': [1491732882, 1983365490, -1997058797],
 'A3': 0.372843474149704,
 'A4': 16023}

Пример 2

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

(b'BOK\x02\x00\xa0\x00\x00\x00\xe5\\\xd8\xe8\xd3#\xf53\x90\xea\xa6\r\xafk\x8e'
 b'>\xc5F\xabl8*l\xf9\x88Fx\xc6%\x0e\xae!\xe4\xbbx\xd1=l\xeen\xaa\x83\x1a'
 b"&\xd3\x104\x93\xcf>\xbe\xd7\x93\x0f\xfb\x0cF\xbd\xe8M'\xd3?\x8c\x03\x00\x00"
 b'\x00\x1b\x00_\xfcD&O?9\xcc\x9fbj\xb4<=IW\xd0O\x1a`\xb8\xc6\xb6\xdfO'
 b'\xa3)\xdf}\x86\x11k\x13>e\x9f\x92\x13\x1eG<\xe5\x85\x14\xd3\xbd?\xbf$'
 b'\xc3\x15\xfa\xfeS\x0e\xac\xbc\xdd\xea\xbf\xc4\x04\x00\x00\x00]\x00M\xa3'
 b'\x1b\xfec\xbf\xf3\x94B\xf1Z \x89\xed\x1e\x00a\x00')

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

{'A1': [{'B1': {'C1': [27690, -30471, 30790, 9670, -20978, -7135],
                'C2': 0.10228105634450912,
                'C3': {'D1': 15214877543920234092,
                       'D2': 13328,
                       'D3': -0.18633870780467987,
                       'D4': -82865193,
                       'D5': 0.29927394607975155},
                'C4': 140,
                'C5': [-85, 108, 56]},
         'B2': -929,
         'B3': 0.8091776371002197,
         'B4': 4412600103930416185},
        {'B1': {'C1': [24602, -14664, -8266, -23729, -8407, -31107],
                'C2': 0.14396311342716217,
                'C3': {'D1': 16518155727791103845,
                       'D2': 5253,
                       'D3': -0.7489902377128601,
                       'D4': -99237084,
                       'D5': -0.8395675049274585},
                'C4': 196,
                'C5': [73, 87, -48, 79]},
         'B2': -23731,
         'B3': -0.8905960917472839,
         'B4': 17116247433765098739}],
 'A2': [-388473627, 871703507, 229042832],
 'A3': 0.2781653106212616,
 'A4': 18117}

Вариант №6

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x97 0x49 0x4b 0x52 0x49, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Массив структур B, размер 3
2 uint64

Структура B:

Поле Описание
1 uint8
2 Массив char, размер 5
3 Адрес (uint32) структуры C
4 int16
5 Адрес (uint16) структуры D
6 Адрес (uint16) структуры E

Структура C:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива int32
2 uint16

Структура D:

Поле Описание
1 Массив int16, размер 3
2 double
3 uint16
4 uint16

Структура E:

Поле Описание
1 int16
2 Массив int8, размер 2
3 int8
4 int8

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

Пример 1

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

(b'\x97IKRI\x83bcwybE\x00\x00\x00F^O\x00a\x00\xactzxafo\x00\x00\x00\x95'
 b'\xe2y\x00\x8b\x00\x14nknew\x99\x00\x00\x00`*\xa3\x00\xb5\x00\xb7\xc2\x1d'
 b'R\xf2M\x9f\x96\xcci\x0ex@\x9c\xaa&\x02\x00\x00\x00=\x00\x00\x00\xd0\xbc\t'
 b'&\xce\x9c\x823~+\x80\xf5\x9cH\xe6?;\x1e\xed\xa3\xc5,z\x0cJ\xa1\x98\xb4Lb\x86'
 b'ub\xd5\x02\x00\x00\x00g\x00\x00\x00\x85\xbc\xd7\xb2\x84\xec\xd4\xba\xc0'
 b'\xcf\xc3\x8aJ\xd8\xc1? \xb4\xed\x1b\r\xee\x8b\x04\x1ao\xe5qd\x8d\xb2_0'
 b'\x10\x02\x00\x00\x00\x91\x00\x00\x00\xf4\xc6\xf6\x00!S\x84\x08\x8a\x060'
 b'R\x8a\x7f\xe3?\x1f\x12\xe7\xeb\xdd\xe6:\x14&\xdf')

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

{'A1': [{'B1': 131,
         'B2': 'bcwyb',
         'B3': {'C1': [2014210508, 648715328], 'C2': 48336},
         'B4': 24134,
         'B5': {'D1': [9737, -25394, 13186],
                'D2': 0.6963639063773,
                'D3': 7739,
                'D4': 41965},
         'B6': {'E1': 11461, 'E2': [122, 12], 'E3': 74, 'E4': -95}},
        {'B1': 172,
         'B2': 'tzxaf',
         'B3': {'C1': [1649194136, -714967674], 'C2': 48261},
         'B4': -7531,
         'B5': {'D1': [-19753, -4988, -17708],
                'D2': 0.1394131829798635,
                'D3': 46112,
                'D4': 7149},
         'B6': {'E1': -4595, 'E2': [-117, 4], 'E3': 26, 'E4': 111}},
        {'B1': 20,
         'B2': 'nknew',
         'B3': {'C1': [-1922797083, 271605682], 'C2': 50932},
         'B4': 10848,
         'B5': {'D1': [246, 21281, 2180],
                'D2': 0.6093188863016661,
                'D3': 4639,
                'D4': 60391},
         'B6': {'E1': -6435, 'E2': [58, 20], 'E3': 38, 'E4': -33}}],
 'A2': 10853479330141291191}

Пример 2

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

(b'\x97IKRI"kyluiI\x00\x00\x00\x94bS\x00e\x00\xe0gbfsts\x00\x00\x00\xd5'
 b'<}\x00\x8f\x00\xddymmxq\x9d\x00\x00\x00\xd5\x90\xa7\x00\xb9\x00\x9c,\xae'
 b'Mw#\x8b\xfa\xd4\x17\xde\xb7\x02\xc2T2Q\xf5W\xf8\x03\x00\x00\x00=\x00\x00'
 b'\x00t\x80uyW\xde\xeb\\\xc0\x02w\x8dj\\\xab\xbf\xac{\x15B\x13A\x1f'
 b'y\xfc\xee\xfc7\x87\x0eE\xb8;\x8c\x02\x00\x00\x00k\x00\x00\x00lL\x8bA\xa7'
 b'\xfd\xbc\xad\xfa\x12\xe3\xd8\xbf\x08\xe3\xbf\xa7\t\xa8r\x1d\xa2\xa3`\x08'
 b'\xebS\x02\r\xd5\x85/\x9b\xf0\x02\x00\x00\x00\x95\x00\x00\x00\x08\xbe\x12'
 b'\xab\x02h$\x86@\x83.R\xbaW\xc2\xbf\x84/ \xd3\xda_\x87\xef\x15I')

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

{'A1': [{'B1': 34,
         'B2': 'kylui',
         'B3': {'C1': [-1210181676, 844415490, -128453295], 'C2': 32884},
         'B4': 25236,
         'B5': {'D1': [31093, -8617, 23787],
                'D2': -0.05343945481172829,
                'D3': 31660,
                'D4': 16917},
         'B6': {'E1': 16659, 'E2': [31, 121], 'E3': -4, 'E4': -18}},
        {'B1': 224,
         'B2': 'gbfst',
         'B3': {'C1': [243742716, -1942243259], 'C2': 19564},
         'B4': 15573,
         'B5': {'D1': [16779, -601, -21060],
                'D2': -0.5948180423807508,
                'D3': 2471,
                'D4': 29352},
         'B6': {'E1': -24035, 'E2': [-93, 96], 'E3': 8, 'E4': -21}},
        {'B1': 221,
         'B2': 'ymmxq',
         'B3': {'C1': [-720567725, -258265211], 'C2': 48648},
         'B4': -28459,
         'B5': {'D1': [-21742, 26626, -31196],
                'D2': -0.1433022404935631,
                'D3': 12164,
                'D4': 54048},
         'B6': {'E1': 24538, 'E2': [-121, -17], 'E3': 21, 'E4': 73}}],
 'A2': 18053562526556105884}

Вариант №7

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x47 0x52 0x50, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива char
2 Структура B
3 Массив int16, размер 8
4 int16

Структура B:

Поле Описание
1 Массив адресов (uint16) структур C, размер 2
2 Размер (uint32) и адрес (uint16) массива float
3 Структура D
4 uint16
5 int8
6 uint32

Структура C:

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

Структура D:

Поле Описание
1 int64
2 int64
3 double

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

Пример 1

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

(b'GRP\x02\x00\x00\x00F\x00\x00\x00H\x00c\x00\x03\x00\x00\x00~\x00%\xca\xc1'
 b'`\xc7c\x02\x0c*\x7f\x82\xd6\xba\xf0\xeci\x1c\x0chj\xdc\xfe\xd1?V\xc2\xd2'
 b'\x1a:5\xf8\xb9Q\xd6\x0e\x0b$+Li\x87P\xb2\xed-\x0e\xc7\xcc\x0cuv/W\xb4>'
 b'\x82\x93X?\xcf\xb2(\xbf\xc9\xb6% \xecM\x94sa^\xdc?V({B\xe1\xe0>a'
 b'\x86\xa7\xbe\x16\xa3>\xbe4\xc1=R\x0c\x8a\xfeG\xeao\xdd\xbf\xaa'
 b'\xfa\xd6\xb9\xd8|?r[.\xbe\xd1\xe9E\xbe')

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

{'A1': 'uv',
 'A2': {'B1': [{'C1': 0.35222765803337097,
                'C2': [0.8460007905960083, -0.6589784026145935],
                'C3': 539342537,
                'C4': 0.44326053893129713,
                'C5': 86,
                'C6': 31528},
               {'C1': 0.43921858072280884,
                'C2': [-0.3271971046924591, -0.18616899847984314],
                'C3': 1379778868,
                'C4': -0.45995575934117094,
                'C5': 170,
                'C6': -10502}],
        'B2': [0.9876819252967834, -0.17027071118354797, -0.19327475130558014],
        'B3': {'D1': 865363786381511205,
               'D2': 7632740153739607850,
               'D3': 0.28118048087361713},
        'B4': 49750,
        'B5': -46,
        'B6': 4164237850},
 'A3': [20921, 3798, 9227, 19499, -30871, -19888, 11757, -14578],
 'A4': 3276}

Пример 2

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

(b'GRP\x02\x00\x00\x00F\x00\x00\x00H\x00c\x00\x05\x00\x00\x00~\x00\xe13\xb9'
 b'\x8e\xe2\xb7kW%2\xcfW\xb6Q\xda\x9e\x94\xa7\xb1\x9er(\xdd\xbf\xe0\xca\x1c'
 b'{3\x84\xf2\xf3Z\x88E\xbd\xf12k\xa5\xfapp\xb7\x1b98\x99uolN\xa0f?\xc9qy?'
 b'#\xc9\xaf\xbe~7\xafY\xd8"\x89\xff\x0e\x1f\xee?\xa4L \x95\x08h?k]J?\x11'
 b'\xe4\xbd\xbc\xae||\xd5^`\x11\xc0\x06\n\xea\xbf3Q\xe7}M"\xbe\xbeE'
 b'"\xbf\x8f\xcb_?V\x10\xa8\xbe\x8b\xd7N?')

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

{'A1': 'ol',
 'A2': {'B1': [{'C1': 0.9008835554122925,
                'C2': [0.9743924736976624, -0.3433314263820648],
                'C3': 1504655230,
                'C4': 0.9412913313800244,
                'C5': 164,
                'C6': 8268},
               {'C1': 0.9063809514045715,
                'C2': [0.7904879450798035, -0.02318003959953785],
                'C3': 3581705390,
                'C4': -0.8137239219022481,
                'C5': 51,
                'C6': -6319}],
        'B2': [-0.15849871933460236,
               -0.6338766813278198,
               0.8741998076438904,
               -0.32824963331222534,
               0.8079764246940613],
        'B3': {'D1': 6299330687492764641,
               'D2': -7000192827194920411,
               'D3': -0.45559373376328804},
        'B4': 51936,
        'B5': 28,
        'B6': 4068750203},
 'A3': [23283, 17800, -3651, 27442, -1371, 28784, 7095, 14393],
 'A4': 30105}

Вариант №8

Задача №12

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

Структура A:

Поле Описание
1 Адрес (uint32) структуры B
2 uint32
3 double
4 Массив структур C, размер 2
5 Адрес (uint16) структуры E

Структура B:

Поле Описание
1 int16
2 Размер (uint32) и адрес (uint32) массива char

Структура C:

Поле Описание
1 int16
2 Структура D

Структура D:

Поле Описание
1 int16
2 int32
3 uint16
4 uint16
5 uint32
6 Размер (uint16) и адрес (uint16) массива int16

Структура E:

Поле Описание
1 float
2 uint32
3 uint32
4 Массив uint64, размер 5

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

Пример 1

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

(b'CZX\xa5@\x00\x00\x00\x01\r\xf3\x97\xcc\xca3!\x11\x18\xea?a\xa5\xe6m'
 b'\xcc.k\xd1\rC:\xcdc}\xeeD\x02\x00J\x00Q\xc2\x87\x7f\x02\xa3\xc9H'
 b'\x01\xbf{\xca5\xff\x80\xf0\x03\x00N\x00T\x00kz`\xb6\x02\x00\x00\x00>\x00'
 b'\x00\x00\xfb\xe7\xa4\x1b@Z8\xfe^\xb4\x14y\xd8>\x18\x1eJr\xc1\xf2\x11\xf9'
 b'\x9d\x04\xfa\xf2\xa6\xdeQ\xbd\x12~.\xc1\x05\x9boGpW\xc4%\xeb\\\xca\x0c'
 b'\xe6\x181\xc1nZ\xe2\x1d\xf7\x1evk\x1c{\x7ff')

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

{'A1': {'B1': -18848, 'B2': 'kz'},
 'A2': 2549288193,
 'A3': 0.815437855575817,
 'A4': [{'C1': -23199,
         'C2': {'D1': 28134,
                'D2': -781504820,
                'D3': 17165,
                'D4': 52538,
                'D5': 1156480355,
                'D6': [-6149, 7076]}},
        {'C1': -15791,
         'C2': {'D1': 32647,
                'D2': 1221174018,
                'D3': 48897,
                'D4': 51835,
                'D5': 4034985781,
                'D6': [23104, -456, -19362]}}],
 'A5': {'E1': 0.422798752784729,
        'E2': 1917459992,
        'E3': 4178703041,
        'E4': [13641929554904351901,
               5147503348125957650,
               921651238771382128,
               2153383003570641126,
               7385757275903106807]}}

Пример 2

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

(b'CZX\xa5@\x00\x00\x00\x7f\xc1\xb9\xbf\x94\x82\x1a"B\xb0\xd5\xbf\x04\x1c\x9b7'
 b'_\xd6\xa0\xf1\x1fG7m\xae\xe6-s\x07\x00J\x00\xf6\xc1hM\x0c@O\r\t\xf2=\xe7'
 b'o\xe3\x1ev\x05\x00X\x00b\x00he\xcf\x0f\x02\x00\x00\x00>\x00\x00\x00\xa6m'
 b"Hb\x83\x8f\x1e}c\xc2\xf8feE'\xa0\x94\xdfXs\x19E\xdd\x94\x96\xf3\x84\xbe\x1b#"
 b'1cd\x95\x99\xec\x8ax\xca\xfcB\xbdv\xcf\xfb\xe67\xec\xa2$\x94@?\xee'
 b'g\xe1\xf9\xf0\xffy\xab9\x8e,\xe9P8\x96+\x16\x90?\xd5t\x99H')

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

{'A1': {'B1': 4047, 'B2': 'he'},
 'A2': 3216621951,
 'A3': -0.3388829548876313,
 'A4': [{'C1': 7172,
         'C2': {'D1': 14235,
                'D2': -241117601,
                'D3': 18207,
                'D4': 27959,
                'D5': 1932388014,
                'D6': [28070, 25160, -28797, 32030, -15773, 26360, 17765]}},
        {'C1': -15882,
         'C2': {'D1': 19816,
                'D2': 223297548,
                'D3': 61961,
                'D4': 59197,
                'D5': 1981735791,
                'D6': [-24537, -8300, 29528, 17689, -27427]}}],
 'A5': {'E1': -0.2596709132194519,
        'E2': 1664164635,
        'E3': 3969488228,
        'E4': [14949344108509558922,
               4653384597146953467,
               8791009953669705279,
               10824490666790107563,
               5231340901410805291]}}

Вариант №9

Задача №12

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

Структура A:

Поле Описание
1 Структура B
2 uint32
3 int64
4 Размер (uint16) и адрес (uint32) массива структур C
5 Массив float, размер 2
6 int16
7 double
8 uint8

Структура B:

Поле Описание
1 Массив char, размер 6
2 uint8
3 int8

Структура C:

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

Структура D:

Поле Описание
1 int8
2 double

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

Пример 1

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

(b'\xf1KRCLkuyxee\x1b\xf1\xb23\xb3\xf0\xcb!G\x844\xda\x1c\x87\x00\x02\x00'
 b'\x00\x00X=\xc6\x88\x9f\xbf\x08\xf9G\x07\x8b?\x96\xda\x02YR\x8f\xc0\xc1~?'
 b'\xebv\xa4T}S\xe8\\\xa1\xc3hG@\xd6\xd9=\xe8X?\xe2\xa5\xf7\xe6s\xd8R\xbd\x06'
 b'~lH\xf4i\xdc\x1a+\xbef\x18\n\x00\x00\x002\x00\x00\x00\x05\x00\x00\x00;'
 b'\xbe\xc4E\xcc\x00\x00\x00E\x00\x00\x00\x05\x00\x00\x00N')

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

{'A1': {'B1': 'kuyxee', 'B2': 27, 'B3': -15},
 'A2': 2989732848,
 'A3': -3809685176630764409,
 'A4': [{'C1': -0.22470107674598694,
         'C2': {'D1': 126, 'D2': 0.8582326555430173},
         'C3': [23713, 50024, 18240, 55001, 15848]},
        {'C1': -0.38334500789642334,
         'C2': {'D1': 88, 'D2': 0.5827598095918438},
         'C3': [48390, 32364, 18676, 27100, 6699]}],
 'A5': [0.09694027155637741, -0.5350536704063416],
 'A6': 1931,
 'A7': 0.022316014005482776,
 'A8': 193}

Пример 2

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

(b"\xf1KRCLgyovvs\xf1D\xb7\x9a5f\xd0U\xf8]\xcb'\xddK\x00\x02\x00\x00\x00^?"
 b';\xcc\xdb\xbf\x0c\x01\x84\xda\x01\xbf\xc1\xe8\xb8%h0\x08\x10\x94?'
 b'\xb6\x12\r\x84kW\xb0\x948\x84\xb5\xd4\xaa\xa1\xca\x112n82?\xdd\xb9\xa6'
 b'\xf0(Hh\xf1\x81[\xf0\xcd\xbf?\x05\xb2m\xb3~\xc6h=\x11V2\x00\x00\x002\x00\x00'
 b'\x00\x06\x00\x00\x00;\xbf\x0b/\r\x00\x00\x00G\x00\x00\x00\x07\x00\x00\x00P')

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

{'A1': {'B1': 'gyovvs', 'B2': 241, 'B3': 68},
 'A2': 3080336742,
 'A3': -3434566059076100789,
 'A4': [{'C1': 0.03548259288072586,
         'C2': {'D1': -108, 'D2': 0.0862129638947795},
         'C3': [37944, 33973, 54442, 41418, 4402, 28216]},
        {'C1': -0.5436866879463196,
         'C2': {'D1': 50, 'D2': 0.4644563050543469},
         'C3': [61825, 23536, 52671, 16133, 45677, 45950, 50792]}],
 'A5': [0.7335945963859558, -0.5468981266021729],
 'A6': -9727,
 'A7': -0.13991453005326115,
 'A8': 16}

Вариант №10

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x56 0x47 0x51 0x54, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Адрес (uint16) структуры B
2 uint32
3 double
4 uint8
5 Адрес (uint16) структуры D
6 double

Структура B:

Поле Описание
1 Массив структур C, размер 3
2 Массив float, размер 5
3 int32
4 int64
5 int8
6 int16

Структура C:

Поле Описание
1 int8
2 Размер (uint32) и адрес (uint16) массива int32
3 Массив int8, размер 2
4 int16
5 int16
6 int16

Структура D:

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

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

Пример 1

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

(b'VGQT\x009GvD??\xc8\xc4h\x8f\xc2\xeb\x88\xe9\x00\x89\xbf\xd8\xdep\xba\xc8('
 b'\xd8$\xc3\xf7\xee\xdc\x9fMMH\xe9\x9a\xaa\x9f\xfc\xb3\x12\xf8h\xeb'
 b'\xda6\xbc\x8d\x1fy\xb8\x06\x8d\xe9\x00\x00\x00\x02\x00\x1dLQ\x9d\xfdZ\x81<g'
 b'N\x00\x00\x00\x03\x00%#\x04j\xcd\x93P;m\xe8\x00\x00\x00\x02\x001\xaaN'
 b'6\xc3\x889\xc5z\xbe)\xea\xa3\xbfx\xe6\xc4>\xd0_\x1f?%\xc4*?8\x87c\x02e'
 b'\xd0\x84C\xb2\x1e\x08\x9ai\xc7F\xc4o+\xbfrL\x84\xe98U\xd1bp\x8e\x96?)\x05'
 b'\x12>\xa7\x06\xe3\xbeB\xb3\x8f=\xbdP+?[\xd7\xdb\xfaW&')

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

{'A1': {'B1': [{'C1': -23,
                'C2': [616822766, -593539763],
                'C3': [76, 81],
                'C4': -25091,
                'C5': 23169,
                'C6': 15463},
               {'C1': 78,
                'C2': [1223269034, -1610829038, -127341606],
                'C3': [35, 4],
                'C4': 27341,
                'C5': -27824,
                'C6': 15213},
               {'C1': -24,
                'C2': [918326559, 2042103437],
                'C3': [-86, 78],
                'C4': 14019,
                'C5': -30663,
                'C6': -14982}],
        'B2': [-0.16593413054943085,
               -0.972271203994751,
               0.40697571635246277,
               0.6475244760513306,
               0.7208158373832703],
        'B3': 40226948,
        'B4': 4877994368694863686,
        'B5': -60,
        'B6': 28459},
 'A2': 1198933055,
 'A3': 0.19349391002273486,
 'A4': 233,
 'A5': {'D1': -0.9464800357818604,
        'D2': -382183983,
        'D3': 1651543702,
        'D4': 0.6602336168289185,
        'D5': [0.3262244164943695,
               -0.1901380866765976,
               0.09243806451559067,
               0.8587624430656433],
        'D6': -1449,
        'D7': 38},
 'A6': -0.38857668152253444}

Пример 2

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

(b'VGQT\x0051\xc2\xe57\xbf\xb6.\xe7\r\xe5,\xe0\x8c\x00\x85?\xa3\xb3\xd3\xf5de'
 b'\xa0O<q9|\x9f"\xf6J\xfe\x12\\t\x16\x98\x00z\xcc\xe6\xfd\xe4J>.\xeb\x00\x00'
 b'\x00\x02\x00\x1d\xaa\x16\xe9c\x83\x00\x0c\xedb\x00\x00\x00\x02\x00%x'
 b'\xa9\xc4h\x0f\x04\xc5\t~\x00\x00\x00\x02\x00-x\xdbi_\xe73\x98K?P`\x9d=\xf1'
 b'\xf8\xec\xbe\x99\xb9\xd1?\x12\xa4\x9c>|\xee)\x1a\xe5k^$\xb8\xf7:\xab\xb4'
 b'k\xd4O\xf1\x82\xbfo\xfc?\x18\xc3\xa4\x88\xdaR\xc8\xbf\xbd\x82p3\xbfZc\xb2>!w'
 b'\xd4>\x95Z\x88>\xe3\xa7\x1b7\x0ex')

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

{'A1': {'B1': [{'C1': -21,
                'C2': [1329361209, 2090803958],
                'C3': [-86, 22],
                'C4': -5789,
                'C5': -32000,
                'C6': 3309},
               {'C1': 98,
                'C2': [1258164828, 1947637760],
                'C3': [120, -87],
                'C4': -15256,
                'C5': 3844,
                'C6': -15095},
               {'C1': 126,
                'C2': [2060248829, -464896466],
                'C3': [120, -37],
                'C4': 26975,
                'C5': -6349,
                'C6': -26549}],
        'B2': [0.8139742016792297,
               0.11815056204795837,
               -0.3002457916736603,
               0.572824239730835,
               0.2470022588968277],
        'B3': 451242846,
        'B4': 2646136612441058260,
        'B5': 79,
        'B6': -3710},
 'A2': 834856247,
 'A3': -0.0866531762050502,
 'A4': 140,
 'A5': {'D1': -0.9374427199363708,
        'D2': 415474824,
        'D3': 3662858431,
        'D4': -0.06369056552648544,
        'D5': [-0.8530837297439575,
               0.15768367052078247,
               0.2917063236236572,
               0.4446342885494232],
        'D6': 14094,
        'D7': 120},
 'A6': 0.03848135347852666}

Вариант №11

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xd9 0x53 0x57 0x52 0x42, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 double
2 int32
3 Адрес (uint16) структуры B
4 Адрес (uint16) структуры E
5 Размер (uint16) и адрес (uint16) массива char
6 Структура H

Структура B:

Поле Описание
1 Структура C
2 uint64

Структура C:

Поле Описание
1 int8
2 int8
3 uint8
4 int64
5 Размер (uint16) и адрес (uint16) массива адресов (uint16) структур D

Структура D:

Поле Описание
1 int64
2 uint16

Структура E:

Поле Описание
1 uint64
2 Адрес (uint16) структуры F
3 double

Структура F:

Поле Описание
1 int16
2 uint16
3 Адрес (uint16) структуры G

Структура G:

Поле Описание
1 Массив int8, размер 8
2 float
3 uint64

Структура H:

Поле Описание
1 Размер (uint32) и адрес (uint16) массива int8
2 Размер (uint32) и адрес (uint32) массива int32
3 int64

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

Пример 1

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

(b'\xd9SWRB\xa0\x93(\x1a\xae\xae\xbb?{\xddz]G\x00x\x00\x02\x00\x8a'
 b'\x00\x02\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x8e\x00\x00\x00\x9e'
 b'\xeb\xed*\x02<\xc8\x7fb\xf2\x89\xe5\x92j\x95\x95\xc2\x03:\x90P\xf1\x8bLr'
 b'\xddX\xf5/\x009\x00\xbe\x89\x9dO\x97\xa3\xbdt\xbf\xc8N\x02\x00C\x00\x15\xfa'
 b'\x96\x0e.P8U\xbf\x07\x04\x8c\x13X"o\xb1\x807>\xc7\x12\xb0l\x1df\xf8U\x1c\x98'
 b'\xbf\x98^\x00\x1d~\xe0\x11\xea\xdf\xaf\x12r\x00\x10\xd8\xb6EeM\xed?gf"5\xcb9'
 b'&]\xe8\x83L\xf1')

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

{'A1': 0.10813415659556691,
 'A2': 1568333179,
 'A3': {'B1': {'C1': -66,
               'C2': -119,
               'C3': 157,
               'C4': 5676997838419236687,
               'C5': [{'D1': -7668105611379608990, 'D2': 962},
                      {'D1': -2489843480049708998, 'D2': 62808}]},
        'B2': 6140746250663164437},
 'A4': {'E1': 1346541010022333981,
        'E2': {'F1': -26596,
               'F2': 39103,
               'F3': {'G1': [-65, 7, 4, -116, 19, 88, 34, 111],
                      'G2': 0.1792018562555313,
                      'G3': 6194813564011680455}},
        'E3': 0.915697704468359},
 'A5': 'gf',
 'A6': {'H1': [34, 53],
        'H2': [1562786251, -246643736],
        'H3': 9207675418166815646}}

Пример 2

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

(b'\xd9SWRB\x82C\xc6\x04F\xcd\xeb\xbfA\xa2%\xdeG\x00x\x00\x02\x00\x8a'
 b'\x00\x03\x00\x00\x00\x8c\x00\x04\x00\x00\x00\x8f\x00\x00\x00\x9f`\xc2\xe7b'
 b'P\x88\xc1d\xbf\xd6H\xb5\x12\x87\xa6@45\xe7\xedT\xb3\x7f&SPh/\x009\x00\x8e'
 b'\xc5H\xe8\x06[\xfb\xa9&;\xf6\x02\x00C\x00K\x16(\xac\x82\xf6\xfdV\xa6)'
 b'\x9ew\xf2\x90\x93!\xe6r\xc5\xbe\t~?Q\xcf\x07\xb5lY\x8e\xc2k^\x00g\xc6\x82u'
 b'\xad%m.r\x00({\x94\x04f7\xe6\xbfcw\xd1#\xf2\x89M7\x9b\xbdV\x92m,\xdcH*O'
 b'\x7f\xedR')

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

{'A1': -0.8688078015567131,
 'A2': -567958975,
 'A3': {'B1': {'C1': -114,
               'C2': -59,
               'C3': 72,
               'C4': -703926405244975384,
               'C5': [{'D1': -6447163771737161884, 'D2': 13376},
                      {'D1': 5991616762463774517, 'D2': 26704}]},
        'B2': 6268437297464088139},
 'A4': {'E1': 3345371525137221223,
        'E2': {'F1': -29095,
               'F2': 27586,
               'F3': {'G1': [-90, 41, -98, 119, -14, -112, -109, 33],
                      'G2': -0.38564223051071167,
                      'G3': 7833175713883586057}},
        'E3': -0.6942625131085594},
 'A5': 'cw',
 'A6': {'H1': [-47, 35, -14],
        'H2': [-1690874487, 1838307005, 709418028, 1391296335],
        'H3': -4501259441831518049}}

Вариант №12

Задача №12

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

Структура A:

Поле Описание
1 int8
2 uint32
3 Структура B
4 int8
5 double

Структура B:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива char
2 uint64
3 int16
4 Массив адресов (uint32) структур C, размер 2
5 Массив int16, размер 7
6 double
7 Адрес (uint16) структуры D

Структура C:

Поле Описание
1 Массив float, размер 6
2 Размер (uint32) и адрес (uint32) массива uint8
3 int8
4 double
5 uint32
6 int8

Структура D:

Поле Описание
1 int8
2 float
3 int64
4 uint8

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

Пример 1

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

(b'VVK\xa1{\x1a\xf2\x96\x00\x00\x00\x02\x00\x00\x00C\xdd\x0b\xdb\x9cAA\x92V'
 b'\x9b\x17\x00\x00\x00G\x00\x00\x00x\x85\xfdkS.\xc32\x11Od]\xa2\xbb\xf4'
 b'?\xefD\x05\xf0b\x8e\x8c\x00\xa6V?\xea\xb27<d\x80Hrm\x9a\x19?J\xf0\xfb\xbd'
 b'\xcc\n\r\xbd-jZ?\t;\xe2\xbfU\xc0b\xbfZ\xbey\x00\x00\x00\x02\x00\x00\x00E\xd7'
 b'?\xe2A\xa4\xa2J\x8c\xc2\x90(\x0cW\x88\xd0l\x95?5p\xe8\xbe\xba\xdf\x7f'
 b'>\xac\x9ep\xbft%x\xbaI\xf4\x0e\xbeY\xd8!\x00\x00\x00\x03\x00\x00\x00u'
 b'!?\xc3\x12\x85\xc8.\xec\x98n\xe7\x15[\xa1\x98>\x0fb\xc2\xeeFp,6\x15\x8c\x00{')

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

{'A1': -95,
 'A2': 2065363606,
 'A3': {'B1': 'rm',
        'B2': 15928065971282088534,
        'B3': -25833,
        'B4': [{'C1': [0.7927395701408386,
                       -0.09962854534387589,
                       -0.042337752878665924,
                       0.5360699892044067,
                       -0.834966778755188,
                       -0.8544688820838928],
                'C2': [154, 25],
                'C3': -41,
                'C4': 0.5705130738973809,
                'C5': 2418543703,
                'C6': -120},
               {'C1': [0.7087540626525879,
                       -0.364986389875412,
                       0.3371462821960449,
                       -0.9536967277526855,
                       -0.0007703908486291766,
                       -0.2127385288476944],
                'C2': [208, 108, 149],
                'C3': 33,
                'C4': 0.14900276445937233,
                'C5': 1860638043,
                'C6': -95}],
        'B5': [-31235, 27475, 11971, 12817, 20324, 23970, -17420],
        'B6': 0.9770536131877221,
        'B7': {'D1': -104,
               'D2': 0.14002516865730286,
               'D3': -1277210109124703232,
               'D4': 123}},
 'A4': 86,
 'A5': 0.8342548541586519}

Пример 2

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

(b'VVK\xb8\xc1r\x7fD\x00\x00\x00\x03\x00\x00\x00C\xb5h\x97^(\xb9p\x12'
 b'P\xec\x00\x00\x00H\x00\x00\x00x\xf7\x84\xb5\xe3\x96f\xb8;\x96\x0b'
 b'\x7f^\x1a\x8f?\xcb5\x1b\xda,P`\x00\xa6\x86?\xec\xe6x\x8aI\x99\xaejza\x93\xc3'
 b'\xbf\x19gI?P\xf78\xbf!{k?\x1a\xacO\xbfFI\xc5\xbe\x98\x9a^\x00\x00\x00\x02'
 b'\x00\x00\x00F\xb1?\xd3H\xcf\x8a\xf5\x92\x04\xc8\x97\xa3<\xa7:\x99'
 b'\xbf\x11^\xc3?\x17k\xc8?\x08\xa1\xce>X\x17\xc4?m\xf1\xe8\xbeb\t\x87'
 b'\x00\x00\x00\x02\x00\x00\x00v\x91\xbf\xb1\xb8zDQBP\xda\x9b\xd6\xb6\x7f\xa4?'
 b'K\xd9\xc7b\x1c\xee\xe6\xd6[\x02\xe8\x04')

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

{'A1': -72,
 'A2': 3245506372,
 'A3': {'B1': 'jza',
        'B2': 13071864349108826130,
        'B3': 20716,
        'B4': [{'C1': [-0.5992322564125061,
                       0.8162722587585449,
                       -0.6307894587516785,
                       0.6041917204856873,
                       -0.7745631337165833,
                       -0.29805272817611694],
                'C2': [147, 195],
                'C3': -79,
                'C4': 0.30131901331176913,
                'C5': 3365380924,
                'C6': -89},
               {'C1': [-0.5678521990776062,
                       0.5914883613586426,
                       0.5337189435958862,
                       0.21102815866470337,
                       0.9294724464416504,
                       -0.2207394689321518],
                'C2': [58, 153],
                'C3': -111,
                'C4': -0.06922115486055103,
                'C5': 3667646134,
                'C6': 127}],
        'B5': [-2172, -18973, -27034, -18373, -27125, 32606, 6799],
        'B6': 0.21255825188621014,
        'B7': {'D1': -92,
               'D2': 0.7962917685508728,
               'D3': 7069788190271013608,
               'D4': 4}},
 'A4': -122,
 'A5': 0.9031336499145277}

Вариант №13

Задача №12

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

Структура A:

Поле Описание
1 int16
2 int64
3 Адрес (uint32) структуры B
4 Размер (uint16) и адрес (uint32) массива структур C
5 uint32
6 Структура D

Структура B:

Поле Описание
1 int32
2 int64
3 uint64
4 float
5 uint8

Структура C:

Поле Описание
1 Массив char, размер 7
2 int8

Структура D:

Поле Описание
1 int16
2 Массив uint64, размер 5
3 Массив uint8, размер 5
4 int16

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

Пример 1

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

(b'KKMK\xd3\x03JKs\x10\xc4\xa0\xfa\x9b\xceN\x00\x00\x00\x02\x00g\x00\x00'
 b'\x00\xa4\xfcH\xc6Y5$?\xcbK8\x8c(\xea\x0e\xd9E;\xfcH\xb1\x9e\xde'
 b'\xcc\x9f\x98\xd0Y\xf9vD\x00\xfb\xe8\xf1\xd9*\xd8u)*\x1bf\x84\xcc6\x0b\xe3_gb'
 b"'jBM\x85:\x06^\x18\xfb\xe4\xc0\xfcN\x7f\xdf\x9f\xc2D8\xa1\x9a\xae\xb2{\xbf|k"
 b'bswisi\\lebymuh\x80')

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

{'A1': 18947,
 'A2': -3558975512115121333,
 'A3': {'B1': 981814594,
        'B2': 5691636118787218950,
        'B3': 11142248821065506687,
        'B4': -0.9831951856613159,
        'B5': 124},
 'A4': [{'C1': 'kbswisi', 'C2': 92}, {'C1': 'lebymuh', 'C2': -128}],
 'A5': 3326672036,
 'A6': {'D1': 13657,
        'D2': [16872890177361231652,
               11435001177033791758,
               8572982118125128926,
               15576501894233391172,
               3948676547374360949],
        'D3': [11, 227, 95, 103, 98],
        'D4': 27175}}

Пример 2

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

(b'KKMK\xd3B\x95Rn\xa0>\xef@\xc8AN\x00\x00\x00\x02\x00g\x00\x00\x00\xf0\x8a\x86'
 b'7\xfd\xc2\x04d\xact\xa3\xc2\xd4\xe9\xe7\xc6\x0b\x0b\xceK\x00\x99\xa1J\r\x18{'
 b'>\x88\xbe\xb80\xc6p\xe7\x05\xc4\xd7e\xe7\x1b6\xc9\x12\xb3\x01\xd9y\xf6-j'
 b'=&X\x90@\xc7bC\x12w\x1f\xf1\x1a.K\x02j\xc7nw\xbe=\x16\x03\xc9>9pnpeyjb\x00s'
 b'ycrrwb\xd7')

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

{'A1': -27326,
 'A2': 4740110004099509842,
 'A3': {'B1': -952070056,
        'B2': 3322232792583127906,
        'B3': 4449124799564350027,
        'B4': 0.3926016688346863,
        'B5': 57},
 'A4': [{'C1': 'pnpeyjb', 'C2': 0}, {'C1': 'sycrrwb', 'C2': -41}],
 'A5': 931564272,
 'A6': {'D1': -15619,
        'D2': [16849306113192780804,
               11024895236123641575,
               13729292162444380833,
               15547558305177415864,
               122462270274660197],
        'D3': [217, 121, 246, 45, 106],
        'D4': 9789}}

Вариант №14

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4b 0x43 0x4f 0x4f 0x48, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 uint64
2 uint8
3 int8
4 Структура B
5 float
6 uint16

Структура B:

Поле Описание
1 Адрес (uint16) структуры C
2 Адрес (uint32) структуры E

Структура C:

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

Структура D:

Поле Описание
1 uint8
2 float

Структура E:

Поле Описание
1 uint16
2 uint16
3 uint16
4 int32
5 Массив int16, размер 5
6 float
7 uint8
8 Массив uint64, размер 3

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

Пример 1

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

(b'KCOOH\xbbW\xb8\xd7\x0f\xf0\x1a\t,\x08?\x00L\x00\x00\x00\x19\xe2`\xbeRj\xb2'
 b',\\e?\x8f\\\x1dg\xbf\xdaQ1,?D\xcb\x98]?\x1b\x00 \x00%\x00*\x00\xd3aJ`\xce'
 b'(\x17\xb3\x04\x00/\x00\x00\x00\xdf\x02\x00\x00\x007\x00\xaf\x0b\xcf\xbe'
 b'\x15K\xfb\xd7z;\x93\xc4\xdf\xc9vM\xaf\xca\x91X\xb4mv?!\x15\xf6\x9c'
 b'\x98\x94\xd6z\x16\x90=\x9d<\xdc\x7fI\x83\x9b`~\xde\xd3\xda<N')

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

{'A1': 656100646570186683,
 'A2': 44,
 'A3': 8,
 'A4': {'B1': {'C1': [{'D1': 178, 'D2': 0.8959376811981201},
                      {'D1': 143, 'D2': -0.9027917385101318},
                      {'D1': 218, 'D2': 0.6726275086402893},
                      {'D1': 68, 'D2': 0.8656126856803894}],
               'C2': -33,
               'C3': [1615487443, 3004639438]},
        'B2': {'E1': 2991,
               'E2': 48847,
               'E3': 19221,
               'E4': 997906427,
               'E5': [-15213, -13857, 19830, -13649, 22673],
               'E6': 0.9626114368438721,
               'E7': 33,
               'E8': [1619842949697041941,
                      9460233076154908048,
                      5637621437066797211]}},
 'A5': -0.2196124941110611,
 'A6': 27218}

Пример 2

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

(b'KCOOH\x90\xa4\x1aV3y>~O\x8bC\x00P\x00\x00\x00Y*\xcb>\xdfj\x02\xb5@\xc5='
 b'H\xee\xdf\x0e>4.\x12X\xbeR\xbd\x0cF?\x1b\x00 \x00%\x00*\x00\xa6\x11\xb1u\xf6'
 b'\xf3\xbf`j9} \x04\x00/\x00\x00\x00\xad\x03\x00\x00\x007\x00\xdcn\x9d\xbc'
 b'L\x19\x12\x0e\xf1\x80\xa9\x9b\xdb>Y,\x03r\xbf<\xd6U\xbf>\x9f\xea\x17\xb1'
 b'\xb0e\x0b{\xc8\xd3\xb4Q\xa2\xb6_]\xaf\xac4\x18%s\x08\x9c\x9a')

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

{'A1': 9096841558729860240,
 'A2': 79,
 'A3': -117,
 'A4': {'B1': {'C1': [{'D1': 2, 'D2': 0.09631482511758804},
                      {'D1': 72, 'D2': 0.1395260989665985},
                      {'D1': 52, 'D2': -0.21100685000419617},
                      {'D1': 82, 'D2': 0.7736318707466125}],
               'C2': -83,
               'C3': [1974538662, 1623192566, 545077610]},
        'B2': {'E1': 28380,
               'E2': 48285,
               'E3': 6476,
               'E4': -2131685870,
               'E5': [-25687, 16091, 11353, 29187, 15551],
               'E6': 0.3737017512321472,
               'E7': 159,
               'E8': [14446152761104996330,
                      12636361367483430099,
                      11140788868844369068]}},
 'A5': 0.396807461977005,
 'A6': 27359}

Вариант №15

Задача №12

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

Структура A:

Поле Описание
1 Адрес (uint32) структуры B
2 int16
3 uint8

Структура B:

Поле Описание
1 int32
2 Адрес (uint32) структуры C

Структура C:

Поле Описание
1 int64
2 int32
3 Массив адресов (uint16) структур D, размер 6
4 Структура E
5 int64
6 Размер (uint16) и адрес (uint32) массива uint8
7 int8

Структура D:

Поле Описание
1 Размер (uint16) и адрес (uint16) массива int8
2 int8
3 Размер (uint32) и адрес (uint32) массива uint8
4 uint8

Структура E:

Поле Описание
1 float
2 int64
3 int16
4 double
5 double
6 float
7 uint16
8 uint8

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

Пример 1

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

(b'QJD\xd7\x00\x00\x00RJXS\x0eY\xb1\x1a\xccu\xba\x05\x00\n\x00l\x03'
 b'\x00\x00\x00\x0f\x00\x00\x00\x165\xd2\x12\x80\x18\x02\x00 \x00\xdb\x03\x00'
 b'\x00\x00"\x00\x00\x00\x82\x89/\xc6\x14\x9e\xf2\x03\x003\x00\x02\x03\x00'
 b'\x00\x006\x00\x00\x00\x98\xb5\xc5"\x00\x99!\x03\x00G\x00\xbc\x03\x00'
 b'\x00\x00J\x00\x00\x00L\xeas\x04\xbe\xf9;\x9b\x05\x00[\x00T\x02\x00\x00\x00`'
 b'\x00\x00\x00B\xab\x16W.\xcf\xc3\xd3\xd0>\x05\x00p\x00q\x04\x00\x00\x00u\x00'
 b"\x00\x00)\xcf\x80\x07\x17\xc1'$\x8e\\\xbd\x15\xdb\xe8<W\xc6\x12\x00%\x009"
 b'\x00M\x00b\x00y\x00\xea\x19\x81>e\xe0\xdba\xbe\xa3=\xb0\x85+8\xb18'
 b'\xac0\t\xe1\xbfT\xe6\x88\xb0\x02\xb2\xd4\xbf\xb9T*?\x07\xd7"\xd3i1\xb3'
 b"+\xe8\xba'\x04\x00\x87\x00\x00\x009\xe9\x00V\xd5\x8b\x00\x00\x00")

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

{'A1': {'B1': -715783959,
        'B2': {'C1': -2660011799673034815,
               'C2': -967361304,
               'C3': [{'D1': [83, 14, 89, -79, 26],
                       'D2': 108,
                       'D3': [204, 117, 186],
                       'D4': 22},
                      {'D1': [53, -46],
                       'D2': -37,
                       'D3': [18, 128, 24],
                       'D4': 130},
                      {'D1': [-119, 47, -58],
                       'D2': 2,
                       'D3': [20, 158, 242],
                       'D4': 152},
                      {'D1': [-75, -59, 34],
                       'D2': -68,
                       'D3': [0, 153, 33],
                       'D4': 76},
                      {'D1': [-22, 115, 4, -66, -7],
                       'D2': 84,
                       'D3': [59, 155],
                       'D4': 66},
                      {'D1': [-85, 22, 87, 46, -49],
                       'D2': 113,
                       'D3': [195, 211, 208, 62],
                       'D4': 41}],
               'C4': {'E1': 0.25215083360671997,
                      'E2': -5747257511373971355,
                      'E3': 11141,
                      'E4': -0.5323718417835499,
                      'E5': -0.3233648990604696,
                      'E6': 0.6653552651405334,
                      'E7': 55047,
                      'E8': 34},
               'C5': 2862855787534969299,
               'C6': [207, 128, 7, 23],
               'C7': 57}},
 'A2': 19026,
 'A3': 88}

Пример 2

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

(b'QJD\xd5\x00\x00\x00m\xd18\xb5\x19\xb7\x8f4\xe8\x03\x00\n\x00\x9e\x03\x00\x00'
 b'\x00\r\x00\x00\x00\x87\x0fi\x8b\xb3io\x04\x00\x1e\x00O\x02\x00\x00'
 b'\x00"\x00\x00\x00l\xd5\xf3\x9e\x9c\xc9\xf7U\x05\x002\x00\x90\x02\x00'
 b"\x00\x007\x00\x00\x00'\xe3\xd6DU\xb9\xc1\x04\x00G\x00q\x02\x00\x00\x00K\x00"
 b'\x00\x00\x94\xe3|/:0Mtz\x05\x00[\x00\xf7\x03\x00\x00\x00`\x00\x00\x00\xe0ZoP'
 b'N\xfc\x9e\x03\x00q\x00~\x03\x00\x00\x00t\x00\x00\x00\xdch\x8f\xc7'
 b'\x01\x81\t\xae,D\xe4\xf6-0\x8e0\xf0\x10\x00$\x009\x00M\x00c\x00w'
 b'\x00V\xd7\x1e\xbf\r\xc6;\xe4\xeb\xd5\xfb\xef\xfcR\xe0\x0f\x95\xfeQL\xad?\xc0'
 b'\xf7\xbe\x80\x7fD\xab\xbf<]3\xbfy\xf8X\x82\x8b\x1d\xcf\xed\xf6-\xea\x04\x00'
 b'\x85\x00\x00\x00\xc0M\xe4\xf5\x83\x89\x00\x00\x00')

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

{'A1': {'B1': -2081037235,
        'B2': {'C1': 3312085557436090753,
               'C2': -265253328,
               'C3': [{'D1': [-75, 25, -73],
                       'D2': -98,
                       'D3': [143, 52, 232],
                       'D4': 135},
                      {'D1': [15, 105, -117, -77],
                       'D2': 79,
                       'D3': [105, 111],
                       'D4': 108},
                      {'D1': [-43, -13, -98, -100, -55],
                       'D2': -112,
                       'D3': [247, 85],
                       'D4': 39},
                      {'D1': [-29, -42, 68, 85],
                       'D2': 113,
                       'D3': [185, 193],
                       'D4': 148},
                      {'D1': [-29, 124, 47, 58, 48],
                       'D2': -9,
                       'D3': [77, 116, 122],
                       'D4': 224},
                      {'D1': [90, 111, 80],
                       'D2': 126,
                       'D3': [78, 252, 158],
                       'D4': 220}],
               'C4': {'E1': -0.6204732656478882,
                      'E2': -1154093670367246835,
                      'E3': 21244,
                      'E4': 0.0572229026097657,
                      'E5': -0.05325697371107152,
                      'E6': -0.700641393661499,
                      'E7': 63609,
                      'E8': 88},
               'C5': -1572329193639933054,
               'C6': [104, 143, 199, 1],
               'C7': -64}},
 'A2': -11923,
 'A3': 56}

Вариант №16

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x57 0x51 0x42 0xaa, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 int32
2 Размер (uint32) и адрес (uint32) массива структур B
3 Размер (uint32) и адрес (uint32) массива char
4 int16
5 Размер (uint32) и адрес (uint32) массива double
6 uint32
7 Структура E

Структура B:

Поле Описание
1 float
2 Адрес (uint32) структуры C
3 uint16
4 Структура D

Структура C:

Поле Описание
1 uint16
2 Размер (uint32) и адрес (uint32) массива int16
3 int16

Структура D:

Поле Описание
1 int32
2 int8
3 uint8

Структура E:

Поле Описание
1 Массив int32, размер 2
2 uint32

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

Пример 1

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

(b'WQB\xaa3\xe5\xb6\xca\x00\x00\x00\x02\x00\x00\x00T\x00\x00\x00\x06'
 b'\x00\x00\x00t\x19G\x00\x00\x00\x05\x00\x00\x00z\r\xdb\xa1b\x14j\xd9+)\xdd'
 b'\xef9\xafKB\xfb\xa1\xdd\t\x95Lw\x00\x00\x00\x02\x00\x00\x002f\xe8\x86\xb1'
 b'\xcd<\x9fo\xd7\xd0\x00\x00\x00\x03\x00\x00\x00B}\x82>\x03\x00\xc6'
 b'\x00\x00\x006Tf\xa6{e\xbb\x0f\x92\xbe\xc5\x92\xef\x00\x00\x00Hx\xb6\xa8\xf3'
 b'Z\xe5y]mrmcnx?\xe3\xf0V3J%\xc2?\xde\x00\x15\x9bSi`\xbf\xe5\x01\xb5tc'
 b"\x80\xda\xbf\xe6'D)\x1e\x92N\xbf\xe8\xa3\xca\x8b,\xfd\x0c")

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

{'A1': 870692554,
 'A2': [{'B1': 0.12793263792991638,
         'B2': {'C1': 19575, 'C2': [-24099, 2453], 'C3': 26344},
         'B3': 21606,
         'B4': {'D1': -1501862469, 'D2': 15, 'D3': 146}},
        {'B1': -0.38588663935661316,
         'B2': {'C1': 55248, 'C2': [-31055, -12996, -24721], 'C3': 32130},
         'B3': 30902,
         'B4': {'D1': -1460446491, 'D2': 121, 'D3': 93}}],
 'A3': 'mrmcnx',
 'A4': 6471,
 'A5': [0.6230879785300021,
        0.4687551514486099,
        -0.6564585946289541,
        -0.6922932437051459,
        -0.7699940412784669],
 'A6': 232497506,
 'A7': {'E1': [342546731, 702410553], 'E2': 2940945147}}

Пример 2

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

(b'WQB\xaaz\x00\x8b\xe4\x00\x00\x00\x02\x00\x00\x00d\x00\x00\x00\x05'
 b'\x00\x00\x00\x84}\x99\x00\x00\x00\x02\x00\x00\x00\x89+\xea\x9bg*z'
 b'\x96\xd32\x9cV#7\xbcU\xc5\xfc\xfa\x0b\xae@\xa6\xfe\x883\xefGf}3G\xc7\x00\x00'
 b'\x00\x07\x00\x00\x002!\xa5\xe8c\x83e\xbf\xf4\xce\x99\xbdo[\xf5'
 b'\xbc\xb8\x00\x00\x00\x06\x00\x00\x00Lf\x1c\xbf6b`\x00\x00\x00@'
 b'\xf3\xe6\xa4\x89\xb3L\x12t\xbf\x0f\x80p\x00\x00\x00XBH?\x804\x8a\x16\x92hbiz'
 b'f?\xc52E\xae\x01`\xa8?\xe3\xec\x811\xe0\xfc\x88')

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

{'A1': 2046856164,
 'A2': [{'B1': -0.7124385833740234,
         'B2': {'C1': 18375,
                'C2': [-774, 2990, 16550, -376, 13295, 18278, 32051],
                'C3': 8613},
         'B3': 62438,
         'B4': {'D1': -1534479540, 'D2': 18, 'D3': 116}},
        {'B1': -0.5605535507202148,
         'B2': {'C1': 48312,
                'C2': [-6045, -31899, -16396, -12647, -17041, 23541],
                'C3': 26140},
         'B3': 16968,
         'B4': {'D1': 1065366666, 'D2': 22, 'D3': 146}}],
 'A3': 'hbizf',
 'A4': 32153,
 'A5': [0.16559668537479877, 0.6226201986500124],
 'A6': 736795495,
 'A7': {'E1': [712677075, 849106467], 'E2': 935089605}}

Вариант №17

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x4d 0x53 0x42 0x30, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Структура B
2 Адрес (uint32) структуры D

Структура B:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива структур C
2 uint64
3 uint16
4 int64
5 double

Структура C:

Поле Описание
1 Массив uint32, размер 2
2 uint64

Структура D:

Поле Описание
1 Массив uint64, размер 4
2 int16
3 Размер (uint16) и адрес (uint32) массива int32

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

Пример 1

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

(b'MSB0\x00\x02\x00\x00\x00(\x8f\x04\x875\x00l\xe9\x0e\xdd"%kr\x1d\x18`\x81v'
 b'\xbf\xd4\x81\xc7\xdc\xd9\x1cP\x00\x00\x00P\x0f\xa5\xe7\xc1\x1c\xcc\x8ej'
 b'\xbe\xa1\xc2\x1ct\xc0\xc5r\xf8M\x9eCA\x02\xb9"\x8f\x95\xed\xfe'
 b'\xb9\xee\x18\xf1v\xd3\x80\x8b\xd3\xa3\xd7\xd33\xd7E\x8e\xae\xd0k+'
 b'\xa1\xba\x7f\x17\xb8g\xfdE\x0f\x92Qy\x12\xcc\x1a \xbb\xef\x1aA\x81m\x00\xea'
 b'\xe7\x98\x00\x02\x00\x00\x00H')

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

{'A1': {'B1': [{'C1': [262531009, 483167850], 'C2': 13736473765930386802},
               {'C1': [4165836355, 1090697506], 'C2': 10346437397250447601}],
        'B2': 10305510509040691470,
        'B3': 56610,
        'B4': 2696374271199969654,
        'B5': -0.3204211861343014},
 'A2': {'D1': [3735530895047682859,
               11653766725629377861,
               1122048837616933408,
               13542071473172971754],
        'D2': -6248,
        'D3': [1993572491, -744237101]}}

Пример 2

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

(b'MSB0\x00\x02\x00\x00\x00("Q\x7f\'v\xaa\x0e\r\xe9\x964\xd2\x91&g\x83e\xbe'
 b'?\xed~\x11.\xa8\xfc\xce\x00\x00\x00P\xad\xfa\xcd\x80b\xb1:\xcf\xaa\xdei\xf3'
 b'D\x96Oy\xd2\xf45\xff)yzV\xea\xeec\xdf\xfb\x80\xb9t\x05\xa12\xc8\x08Q\xe8\xf9'
 b'n\x1d\xbb:\x06f\x92\x17\x8a\xa7*\xe7Lh\xce\x01Al7\xf07\xb3\xaf\x9e'
 b'\x08(\xb3\x9d8\x13f\xc6\xefi\x00\x02\x00\x00\x00H')

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

{'A1': {'B1': [{'C1': [2918894976, 1655782095], 'C2': 12312394924826185593},
               {'C1': [3539219967, 695827030], 'C2': 16928577862980647284}],
        'B2': 2472897477874421261,
        'B3': 59798,
        'B4': 3806264229212939710,
        'B5': 0.9216390525179123},
 'A2': {'D1': [7934703976386564631,
               9991001471252483585,
               4714204414816268190,
               587917239203882694],
        'D2': -4247,
        'D3': [94450376, 139585785]}}

Вариант №18

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x47 0x48 0x4b 0x4, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Массив структур B, размер 3
2 uint32
3 Массив int32, размер 6
4 float
5 double

Структура B:

Поле Описание
1 uint16
2 Структура C
3 Адрес (uint16) структуры D

Структура C:

Поле Описание
1 uint8
2 Размер (uint16) и адрес (uint32) массива int8
3 Размер (uint32) и адрес (uint32) массива int16

Структура D:

Поле Описание
1 Размер (uint32) и адрес (uint16) массива uint16
2 float

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

Пример 1

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

(b'GHK\x04\xa0\x8a\xdf\x07\x00e\x00\x00\x00\x03\x00\x00\x00l\x00\x00\x00|\x007'
 b'\xe6[\x07\x00\x86\x00\x00\x00\x02\x00\x00\x00\x8d\x00\x00\x00\x97\x00\xf7s'
 b'\xfe\x02\x00\xa1\x00\x00\x00\x02\x00\x00\x00\xa3\x00\x00\x00\xaf'
 b'\x00\xe1H\x1d\xdf\xb3~\x15\xe4]j\x05n\xed\x9e\x85\xca\xcf\xe5\x96'
 b'\xbd\xb7\x80\x83a\xc7i8\x93\x08\x9d)?\xe0\xb9,js\x82\xd3\xbfk\xe4\x80'
 b'N\xa9M\xe8b\x83\xafz\xc1P\x8c\x0c\xca\x87\xe9\xd3Z\xec\x1e\xbd'
 b'\x05\x00\x00\x00r\x00t\x13\xff\xbeY,u\xab\x89q\xc2\xdc\xa7\x95D\x1f\\I'
 b'\x1e-\xa5\x03\x00\x00\x00\x91\x00S,g\xbfx\x80E\xbd#\xd5\xbe\xe7\xadCr'
 b'OK\x0b\x04\x00\x00\x00\xa7\x00G-\x05\xbf')

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

{'A1': [{'B1': 35488,
         'B2': {'C1': 223,
                'C2': [107, -28, -128, 78, -87, 77, -24],
                'C3': [-31902, 31407, 20673]},
         'B3': {'D1': [3212, 34762, 54249, 60506, 48414],
                'D2': -0.4981952905654907}},
        {'B1': 58935,
         'B2': {'C1': 91,
                'C2': [89, 44, 117, -85, -119, 113, -62],
                'C3': [-22564, 17557]},
         'B3': {'D1': [23583, 7753, 42285], 'D2': -0.9030200839042664}},
        {'B1': 29687,
         'B2': {'C1': 254, 'C2': [120, -128], 'C3': [-17083, -10973]},
         'B3': {'D1': [59326, 17325, 20338, 2891], 'D2': -0.5202221274375916}}],
 'A2': 3743238369,
 'A3': [-468353357,
        1845848669,
        -897212691,
        -1114184241,
        1636008119,
        -1825019449],
 'A4': 0.6625523567199707,
 'A5': -0.3048370873320021}

Пример 2

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

(b'GHK\x04Hx\x8d\x05\x00e\x00\x00\x00\x03\x00\x00\x00j\x00\x00\x00t\x00{'
 b'\xa6\x85\x06\x00~\x00\x00\x00\x03\x00\x00\x00\x84\x00\x00\x00\x90\x00`\xd6'
 b'\x05\x06\x00\x9a\x00\x00\x00\x02\x00\x00\x00\xa0\x00\x00\x00\xae\x00+c\xff'
 b'\x04\x95\x15rz\xe4\xf7\xcc\xd3N\xfc\xe6\xc0\x00\xc4m7\x86pYl\rO#a\x95\xc3?'
 b'\xbe\x80%\xb6X\x95F\x86?8A/\xf6\xd0C0\x19?\x81EF2u\xd6\x02\x00\x00\x00'
 b'p\x00v\x15t\xbe\xc4\x12\xb1\x81c\x00\xc6\xfb\xe5i~\xf7i\xbeA0\x1b|'
 b'\x03\x00\x00\x00\x8a\x00W\xc0!\xbf?\x9fN\xcd\xdc=\xb1\xde~N\xab\x84\t\xaf'
 b'\xe1\x00jy\xf4\x87\x05\x00\x00\x00\xa4\x00\x1e\x1bL>')

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

{'A1': [{'B1': 30792,
         'B2': {'C1': 141,
                'C2': [56, 65, 47, -10, -48],
                'C3': [12355, 16153, 17793]},
         'B3': {'D1': [12870, 54901], 'D2': -0.238363116979599}},
        {'B1': 42619,
         'B2': {'C1': 133,
                'C2': [-60, 18, -79, -127, 99, 0],
                'C3': [-1082, 27109, -2178]},
         'B3': {'D1': [48745, 12353, 31771], 'D2': -0.6318411231040955}},
        {'B1': 54880,
         'B2': {'C1': 5,
                'C2': [63, -97, 78, -51, -36, 61],
                'C3': [-8527, 20094]},
         'B3': {'D1': [33963, 44809, 225, 31082, 34804],
                'D2': 0.1993221938610077}}],
 'A2': 83845931,
 'A3': [2054296981, -741541916, -1058603954, 929940480, 1817800838, 1629703949],
 'A4': -0.18726952373981476,
 'A5': 0.010876814622650555}

Вариант №19

Задача №12

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

Структура A:

Поле Описание
1 uint32
2 Структура B
3 uint8
4 uint8

Структура B:

Поле Описание
1 float
2 Размер (uint32) и адрес (uint32) массива адресов (uint32) структур C
3 Размер (uint32) и адрес (uint16) массива float
4 int8
5 float
6 Массив int8, размер 3
7 Адрес (uint32) структуры F
8 Адрес (uint32) структуры G

Структура C:

Поле Описание
1 int32
2 Структура D
3 Адрес (uint16) структуры E

Структура D:

Поле Описание
1 uint8
2 int16
3 int8

Структура E:

Поле Описание
1 uint32
2 uint16
3 float
4 Массив uint8, размер 2

Структура F:

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

Структура G:

Поле Описание
1 uint64
2 int16
3 int8

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

Пример 1

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

(b'\xf6JNAF\x92\xfez\xf5G\xe9_?\x02\x00\x00\x00Y\x00\x00\x00\x02\x00\x00'
 b'\x00a\x00\xe9|j\x0e\xbfLg\xeei\x00\x00\x00\x93\x00\x00\x00I\xf3\xe92\xc9'
 b'\xaf\x91\xe3\xfe\xdd\x12?@xi\x08\x94\xd6\xc9\x7f\x18\xd5-\x00\x95\x91gE\x00'
 b"\xd4'\x9f\x96>\x06k\x94\xf3p\xbf\tj\xc8iC\x009\x00\x00\x00O\x00\x00"
 b"\x00\xa8\xd7\x86<\xb6'\x1f\xbe2,\xed\x80e\x9a\xe7\x84\xa6==\x14'\xbf\xdc"
 b'\xa46?\xda=c\xbfI\x87\xa7\xbd\xee]Q\xbeI\x00\xce>\x87\x1a\xec\xbe\x02'
 b'\xd7\xed\n\xf8\x83\xbeyGo\x9c\x0b+uK')

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

{'A1': 4118478482,
 'A2': {'B1': 0.8746532797813416,
        'B2': [{'C1': -694941591,
                'C2': {'D1': 201, 'D2': 6271, 'D3': -43},
                'C3': {'E1': 2949198569,
                       'E2': 58257,
                       'E3': 0.5736998319625854,
                       'E4': [64, 120]}},
               {'C1': -1083116652,
                'C2': {'D1': 9, 'D2': -14230, 'D3': 105},
                'C3': {'E1': 1164415381,
                       'E2': 54272,
                       'E3': 0.29418298602104187,
                       'E4': [6, 107]}}],
        'B3': [0.016460254788398743, -0.15542492270469666],
        'B4': -23,
        'B5': -0.5563123226165771,
        'B6': [76, 103, -18],
        'B7': {'F1': 2163026994,
               'F2': 39525,
               'F3': [0.08130817860364914,
                      -0.6526525616645813,
                      0.7134530544281006,
                      -0.8876625299453735,
                      -0.08180100470781326,
                      -0.20445987582206726,
                      0.4023459255695343,
                      -0.46113988757133484],
               'F4': 55042,
               'F5': -19,
               'F6': 10},
        'B8': {'G1': 836665983559959544, 'G2': 29995, 'G3': 75}},
 'A3': 73,
 'A4': 243}

Пример 2

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

(b'\xf6JNAF.a\x7f\xd3sTR\xbd\x03\x00\x00\x00o\x00\x00\x00\x02\x00\x00'
 b'\x00{\x00\xb8\xf3\x04{\xbd\x14R\x94\x83\x00\x00\x00\xad\x00\x00\x00\x89'
 b'\xce\xb8@\x00_Dj]\xcf}?\x16\xc7\xd3\xa0:ng\xb2\n\x06-\x00\xdc'
 b'\xca\x81\xe8\xeab\xec\x9e\xdd>\xed(\x9c \x91\xb1)76$C\x00p{-A\xa1\xe5\xc2'
 b'\xd0S?\x81\xeb\xcc\x1cO\x10E\xd8\xca\xe6Y\x009\x00\x00\x00O\x00\x00\x00e'
 b'\x00\x00\x00\x95\xd6l>B\xb1e>\x8f\xee\xa5\xd1G\xbd\xe6\xe3\xcf'
 b'\xbe\xa9\xf6\xa7>\xc7r\x97>\xa0/\xc8\xbe.\x8ep\xbf\x00&=?D\xceD\xbe{\xf8]'
 b'?k=N\xfe\xf13@\xaf\xdd\xe9g\x00Q\x94\xd5')

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

{'A1': 3548340526,
 'A2': {'B1': -0.05135006830096245,
        'B2': [{'C1': 1849336019,
                'C2': {'D1': 103, 'D2': 2738, 'D3': 6},
                'C3': {'E1': 1593852088,
                       'E2': 27204,
                       'E3': 0.9914453625679016,
                       'E4': [22, 199]}},
               {'C1': -1315888996,
                'C2': {'D1': 41, 'D2': 13879, 'D3': 36},
                'C3': {'E1': 3900820188,
                       'E2': 25322,
                       'E3': 0.432853102684021,
                       'E4': [237, 40]}},
               {'C1': 273620172,
                'C2': {'D1': 69, 'D2': -13608, 'D3': -26},
                'C3': {'E1': 1093499760,
                       'E2': 58785,
                       'E3': 0.8274041414260864,
                       'E4': [129, 235]}}],
        'B3': [0.23128731548786163, 0.22430899739265442],
        'B4': -72,
        'B5': -0.06128401681780815,
        'B6': [20, 82, -108],
        'B7': {'F1': 3517312655,
               'F2': 48455,
               'F3': [-0.4060356020927429,
                      0.328053742647171,
                      0.29579755663871765,
                      -0.3909883499145508,
                      -0.9396694898605347,
                      0.738861083984375,
                      -0.19219309091567993,
                      0.8670727610588074],
               'F4': 15723,
               'F5': 78,
               'F6': -2},
        'B8': {'G1': 29249060938462193, 'G2': -27567, 'G3': -43}},
 'A3': 137,
 'A4': 206}

Вариант №20

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x59 0x47 0x50 0x4f 0x45, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Массив char, размер 6
2 Адрес (uint16) структуры B
3 int16
4 uint64

Структура B:

Поле Описание
1 int32
2 uint16
3 Массив адресов (uint32) структур C, размер 3
4 Структура D
5 uint16
6 int8
7 Массив uint8, размер 4

Структура C:

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

Структура D:

Поле Описание
1 uint8
2 int16
3 int32
4 Массив uint32, размер 2
5 int16

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

Пример 1

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

(b'YGPOErjpmyy\x00tV\xaa\xb7\x93\xa95\xc6R\xfc2\xa5\xe2\x80T\x99_V\xab$'
 b"\xa2g`\xe7}\xa2\x9b\x97\x074\xc340D\xdf\xe7eW\x94iXk\x97'q\xddL\xa9"
 b'[\xf6\xc4q\xa4\xad\x9cy\xad\xc60\x9fG7a\xb9\x03v#\x15\x83\x05qO\x9e\xde\x8bB'
 b'k\xfe"\xab+\x8c\x07\xf4\x98`\x7fw\x82^\xe9 \xcb,\'\xec\x99,?\x9d'
 b'\xc2\x1e\xd6\xfb\xbe\x0c\xce\xdc\x17\x90\x00\x00\x00\x17\x00\x00'
 b"\x006\x00\x00\x00U\xfe\xff'JK_P\x1e\xf2\x1b\x81\xba\xf1\xad\xd1op\x87"
 b'\xaf\xc5\xf0E\xba\xa5')

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

{'A1': 'rjpmyy',
 'A2': {'B1': -1106456868,
        'B2': 6032,
        'B3': [{'C1': -1511882668,
                'C2': 39263,
                'C3': 86,
                'C4': -6114583829171176030,
                'C5': -1684601036,
                'C6': -15564,
                'C7': [12356, 57319, 25943, 37993, 22635]},
               {'C1': -1759022627,
                'C2': 19625,
                'C3': 91,
                'C4': -665281892842702419,
                'C5': -969892025,
                'C6': 14177,
                'C7': [47363, 30243, 5507, 1393, 20382]},
               {'C1': -561298837,
                'C2': 65058,
                'C3': -85,
                'C4': 3137891787480268663,
                'C5': -2107709152,
                'C6': -13524,
                'C7': [10220, 39212, 16285, 49694, 55035]}],
        'B4': {'D1': 254,
               'D2': -217,
               'D3': 1246453584,
               'D4': [519183233, 3136400849],
               'D5': 28528},
        'B5': 34735,
        'B6': -59,
        'B7': [240, 69, 186, 165]},
 'A3': 22186,
 'A4': 13228102578942966834}

Пример 2

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

(b'YGPOEwnhexi\x00ta\xe3vR\xc9\x0b|!$\xdf>\xf3\xc3Y\x9fW\xe5\x91\xd2'
 b'\xf8\x9da\xde\xa3\x18\xea\x17\x8e\xfd\xfa\xcb\x00m\x02\x17d\xfc\xf5\xc8'
 b"\xac_\x07>\xb8\xf4\xd3^\xfd\xd4[7\xfa\xb5m|+\xe5g\xaf:_\xe4\x01_]'\x14"
 b"\xbc\x82\xf9\x7f\x04*\xdd\xd6\x91\x14\xad{\xff\x19\x04'NW+z\x07\xa4>4Ak\xb9c"
 b'\x88\x0b\x86Z\x11\xf80\x00Gp\x0e+.\xef\x00\x00\x00\x17\x00\x00\x006\x00\x00'
 b'\x00U\xd1l\x19#\xfc\x92o\xc4%\xb9\xa4"\xbdZr\xe6\x87|\xe4N\x04\xb1~\xa9')

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

{'A1': 'wnhexi',
 'A2': {'B1': 1198525995,
        'B2': 12015,
        'B3': [{'C1': 1056162649,
                'C2': 40791,
                'C3': -27,
                'C4': -7939009838265228520,
                'C5': -367554819,
                'C6': -1333,
                'C7': [109, 535, 25852, 62920, 44127]},
               {'C1': 121551092,
                'C2': 54110,
                'C3': -3,
                'C4': -3144858364862956501,
                'C5': -446189766,
                'C6': 24548,
                'C7': [351, 23847, 5308, 33529, 32516]},
               {'C1': 719181457,
                'C2': 5293,
                'C3': 123,
                'C4': -65016152755590278,
                'C5': 128204340,
                'C6': 16747,
                'C7': [47459, 34827, 34394, 4600, 12288]}],
        'B4': {'D1': 209,
               'D2': 27673,
               'D3': 603755119,
               'D4': [3290806692, 582834802],
               'D5': -6521},
        'B5': 31972,
        'B6': 78,
        'B7': [4, 177, 126, 169]},
 'A3': 25059,
 'A4': 8526098095730140383}

Вариант №21

Задача №12

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

Структура A:

Поле Описание
1 int8
2 Структура B

Структура B:

Поле Описание
1 uint64
2 int8
3 int16
4 int8
5 uint16
6 Адрес (uint32) структуры C

Структура C:

Поле Описание
1 uint32
2 Массив структур D, размер 2
3 uint8

Структура D:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива int8
2 uint8
3 int32
4 int16
5 double
6 Массив uint16, размер 7
7 Массив int8, размер 6
8 uint8

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

Пример 1

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

(b'CZH\\t\x9e\xcc\x8bcv\xfc2\xc8\x1a\xdb\xe2!\xaa\x1c\x00\x00\x00o\xb4'
 b'P\xa0\xf9\xc5\x80\xe8x\x9b\x02\x00\x00\x00\x16\x00\x00\x00\x10\x94c\xbd'
 b"\xde\x06\xcc\xc0\xd4C*\xe1@\xdf\xbf\xd1\x86\xbfko1a\xe007'\x88\xcf\xc0X{\x17"
 b'\xcb\x07\x16\xbc\x04\x00\x00\x00\x18\x00\x00\x00\x8fX\r|\xb5\x1aa\xfc'
 b'T\x9b\xd9\x1e\xc5\xed\xbf\xc4\xfc)\x82\xa6\xed\x00C\x99\xf2d\xb9\xdb'
 b'\xf1\x89\xa3\xa9k\x8b\xf5H$')

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

{'A1': 92,
 'A2': {'B1': 3673941565946764916,
        'B2': -56,
        'B3': -9446,
        'B4': -30,
        'B5': 43553,
        'B6': {'C1': 2608392320,
               'C2': [{'D1': [111, -76],
                       'D2': 16,
                       'D3': -558013548,
                       'D4': -13306,
                       'D5': -0.4883349335426139,
                       'D6': [34513, 27583, 12655, 57441, 14128, 34855, 49359],
                       'D7': [88, 123, 23, -53, 7, 22],
                       'D8': 188},
                      {'D1': [80, -96, -7, -59],
                       'D2': 143,
                       'D3': -1250161320,
                       'D4': 24858,
                       'D5': -0.9303125620014323,
                       'D6': [64708, 33321, 60838, 17152, 62105, 47460, 61915],
                       'D7': [-119, -93, -87, 107, -117, -11],
                       'D8': 72}],
               'C3': 36}}}

Пример 2

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

(b'CZHr\x84\\\tlOsH8\t\xd6\x90\x93\x03\x04\x1a\x00\x00\x00>6T\xf1WD'
 b'\x91!\x02\x00\x00\x00\x16\x00\x00\x00Z\xc43\xc6\xc2\x80M\xc8\x8f\xd3'
 b'\x94\x04B\xdf?\x90\x8e\xbeer\x12"=\xfa\xd8\xb5-\xcf0\xce\xbc\xd8:\xf7'
 b'Ff\x02\x00\x00\x00\x18\x00\x00\x00\x03\xd1\x92&B\x8b\x05`Z\x00'
 b'\xad\x97\xa9\xe8\xbf\xeb\xd3\x08\xd7\x91\xd7\xc8\xc2\xf7\x8bZ\xcb/\x9d\x89'
 b'y*\x0e\xd7HA6')

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

{'A1': 114,
 'A2': {'B1': 4055618249399295108,
        'B2': 9,
        'B3': -28458,
        'B4': -109,
        'B5': 1027,
        'B6': {'C1': 563168343,
               'C2': [{'D1': [62, 54],
                       'D2': 90,
                       'D3': -1027198012,
                       'D4': 19840,
                       'D5': 0.48840441259221423,
                       'D6': [36496, 26046, 4722, 15650, 55546, 11701, 12495],
                       'D7': [-50, -68, -40, 58, -9, 70],
                       'D8': 102},
                      {'D1': [84, -15],
                       'D2': 3,
                       'D3': 1109824209,
                       'D4': 1419,
                       'D5': -0.7707022074635681,
                       'D6': [54251, 55048, 55185, 49864, 35831, 52058, 40239],
                       'D7': [-119, 121, 42, 14, -41, 72],
                       'D8': 65}],
               'C3': 54}}}

Вариант №22

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x50 0x49 0x42, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Размер (uint32) и адрес (uint16) массива структур B
2 uint64
3 int8
4 int32
5 Массив структур C, размер 6
6 int16
7 Размер (uint32) и адрес (uint32) массива int8

Структура B:

Поле Описание
1 uint16
2 uint16
3 int8
4 int64
5 uint32
6 uint32

Структура C:

Поле Описание
1 Адрес (uint32) структуры D
2 uint32

Структура D:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива uint8
2 Массив uint16, размер 3

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

Пример 1

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

(b'PIB\x02\x00\x00\x00P\x006\xb8(\xbf\x8fu\xff\xa5\xb2\xebI\x02g|\x00'
 b'\x00\x00\xf6\x86%\x1e\x8a\x00\x00\x00\x1d\x03Q\x1f\x98\x00\x00\x00v\x1c'
 b'8d\xa6\x00\x00\x00\xe0LM\xeb\xb4\x00\x00\x00\xb5\x9b\xfa\xe3\xc2\x00'
 b"\x00\x00\xa2C\x18U\x8fN\x05\x00\x00\x00\xce\x00\x00\x00\xe5\x11'PG\x91Ju"
 b'\xfd\xe0\x13\xfe\xa0`x\x9dYP\x1b\x15\xf2!\x9b\xfa\xe0\xef\xf3\x96'
 b'\xc0\x8b\x86\xda2\x7f;\x00\xcd\xbbl\xebV\xfbS{\x02\x00z\x00\x00\x00\x1c\xb3'
 b'\xd3\xd9\x1d\xb4\x97s\x02\x00\x88\x00\x00\x00\x08\x181\xdf\xb2*\xc5\x00'
 b'\x02\x00\x96\x00\x00\x00|eR\xea\x04\xcb\x89\xa0\x02\x00\xa4\x00\x00\x00'
 b'\xb1\xb8;\xdf\x9bL\xd9\xa8\x02\x00\xb2\x00\x00\x00@j\x1fx6~\xc6\xf5\x02\x00'
 b'\xc0\x00\x00\x00\xe2\x86\x00\xfb\x9d\x13G\x13\xe5~\x11')

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

{'A1': [{'B1': 4581,
         'B2': 20519,
         'B3': 71,
         'B4': -6846012526510650735,
         'B5': 1503492192,
         'B6': 4061469520},
        {'B1': 39713,
         'B2': 57594,
         'B3': -17,
         'B4': 9165628463057508083,
         'B5': 3150774331,
         'B6': 4216777580}],
 'A2': 11961408395567216694,
 'A3': -78,
 'A4': 1728203243,
 'A5': [{'C1': {'D1': [83, 123], 'D2': [45852, 55763, 46109]}, 'C2': 505775862},
        {'C1': {'D1': [151, 115], 'D2': [6152, 57137, 10930]}, 'C2': 525402909},
        {'C1': {'D1': [197, 0], 'D2': [25980, 59986, 51972]}, 'C2': 1681398902},
        {'C1': {'D1': [137, 160], 'D2': [47281, 57147, 19611]},
         'C2': 3947711712},
        {'C1': {'D1': [217, 168], 'D2': [27200, 30751, 32310]},
         'C2': 3824851893},
        {'C1': {'D1': [198, 245], 'D2': [34530, 64256, 5021]},
         'C2': 1427653538}],
 'A6': 20111,
 'A7': [71, 19, -27, 126, 17]}

Пример 2

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

(b'PIB\x02\x00\x00\x00P\x00\x0c\xbb\x06\xa6\xe1y~\x91\xe4\x1c\xb3\xdb\x0f|\x00'
 b'\x00\x00\xe8\x83\x16Q\x8a\x00\x00\x000 \xc2)\x98\x00\x00\x00\x96c'
 b'\x96\xf2\xa6\x00\x00\x00\x1d\xc3\x1c\xe2\xb4\x00\x00\x00\x05\xc6'
 b'\x18\xe9\xc2\x00\x00\x00\xfe7~\xb0H\xb7\x05\x00\x00\x00\xce\x00\x00\x00'
 b'j\xfeM\xaf\xc6?\xe1\x9fW\xe3O(\x85/\xecCq\x1f\x878\xd6\n\xfe\xdeEl\xc1X'
 b'\x17\xd8\xccL\x18\x89\xd74s\x00\x92&\x07\xd4%\xb2\x02\x00z\x00\x00\x00\xbd\n'
 b'KJ\xff/\xdfO\x02\x00\x88\x00\x00\x00\xfb1\x06\xf01\x8b\xfc\xe2'
 b'\x02\x00\x96\x00\x00\x00\xa9R\x9e\xca\xec\xfcL\xab\x02\x00\xa4\x00\x00\x00'
 b'\x07\xff\xeb\x03`\xb6\xa3\x80\x02\x00\xb2\x00\x00\x00\xb0\xcd'
 b'\xea\x0e\x87\xad\xe2I\x02\x00\xc0\x00\x00\x00\xbd\x10\x9f\xb3'
 b'\x16\x0f\xcd\x01F@\xcd')

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

{'A1': [{'B1': 65130,
         'B2': 44877,
         'B3': -58,
         'B4': -8851737229750443713,
         'B5': 1900276783,
         'B6': 3594028831},
        {'B1': 65034,
         'B2': 17886,
         'B3': 108,
         'B4': -8568013848389920575,
         'B5': 7550167,
         'B6': 3557238418}],
 'A2': 10483950992625154828,
 'A3': -28,
 'A4': 266056476,
 'A5': [{'C1': {'D1': [37, 178], 'D2': [2749, 19019, 12287]}, 'C2': 1360430056},
        {'C1': {'D1': [223, 79], 'D2': [12795, 61446, 35633]}, 'C2': 700588080},
        {'C1': {'D1': [252, 226], 'D2': [21161, 51870, 64748]},
         'C2': 4069942166},
        {'C1': {'D1': [76, 171], 'D2': [65287, 1003, 46688]}, 'C2': 3793535773},
        {'C1': {'D1': [163, 128], 'D2': [52656, 3818, 44423]},
         'C2': 3910714885},
        {'C1': {'D1': [226, 73], 'D2': [4285, 45983, 3862]}, 'C2': 2961061886}],
 'A6': -18616,
 'A7': [-51, 1, 70, 64, -51]}

Вариант №23

Задача №12

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

Структура A:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива структур B
2 Массив uint64, размер 6
3 double
4 int8
5 Структура D
6 Адрес (uint32) структуры E

Структура B:

Поле Описание
1 int8
2 int8
3 Адрес (uint32) структуры C

Структура C:

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

Структура D:

Поле Описание
1 uint16
2 int16
3 float
4 uint8
5 int64

Структура E:

Поле Описание
1 double
2 int64

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

Пример 1

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

(b'FLI\x80\x00\x00\x00\x03\x00\x00\x00\x96\x9c\x8b\xff\xcda\\\xcc?\xf0a\xcc2'
 b'\xda\xd7w\xd5\xc9\x81\xcbb/k&\r\xe1\xe1~\xe5w`\xbc\x8aa\xdfA\x84'
 b'\xe6\xe3\x80\x9b\xb2\xfc\x14f\xb53\xec\x0b\xbf\xe8\x92\x92\xaf\x84\xcbr'
 b']\xc1]a\xc2?zi\x0e\x0f\x047\xc6/jB\xfa\x17\x00\x00\x00\xa8e\xd7\xbc\xecS\xf6'
 b')\xc9\xc5\xf7\x19\xe6\xa5\x9e \x92\x8f\x00\x1a\x1e\x96\xc2\xda\xe1s\xee'
 b'\x14\xa9\xe2y\xee\xbbtn\xf8Op\x18=\xe9CF\xd6\xaa\x8f\xbfs\xff\xb7\xa2'
 b'\xcc^\xd0\xe5%B\xd8\x0f\xb0x\xd0W\x00\x00\x00Z\x00\xca\x00\x00\x00n\xcd\xdd'
 b'\x00\x00\x00\x82\xbf\xee\xb4\xd2\xa1\x80\x7f|\x8d\x1ay\x88\xbf+u\xa7')

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

{'A1': [{'B1': -48,
         'B2': 87,
         'B3': {'C1': 26071,
                'C2': [-68, -20, 83, -10, 41],
                'C3': [-55, -59, -9, 25, -26],
                'C4': -6512732197294695906}},
        {'B1': 0,
         'B2': -54,
         'B3': {'C1': 38594,
                'C2': [-38, -31, 115, -18, 20],
                'C3': [-87, -30, 121, -18, -69],
                'C4': 8389916175904554473}},
        {'B1': -51,
         'B2': -35,
         'B3': {'C1': 17222,
                'C2': [-42, -86, -113, -65, 115],
                'C3': [-1, -73, -94, -52, 94],
                'C4': -3394265775130824584}}],
 'A2': [11280390949246389311,
        17321350160635623381,
        14520110296181974541,
        16276430052309122186,
        7052427580550643867,
        12897205864241556491],
 'A3': -0.7678922107792074,
 'A4': 93,
 'A5': {'D1': 49501,
        'D2': 25026,
        'D3': 0.9781655073165894,
        'D4': 15,
        'D5': 303929406819334679},
 'A6': {'E1': -0.9595730928740376, 'E2': -8279171336737426009}}

Пример 2

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

(b'FLI\x80\x00\x00\x00\x02\x00\x00\x00\x82\xd3B\x84\xea\xc9\xfe\xd0\xa3l{F\x03'
 b'\xd6\xae|\xd4\xf6\xebaj\xd0\xa7\xaf!\x02\xc8F\x83\x96\xc7\xe1F'
 b'\xa6\xfe\x98\x1bB3\xe9\xcd\xef\x0bx~\xfeX\xad\xb9\xbf\xdb\xda\x06\xearV\xc8'
 b'6&\xca\xb0\xb8?k\xd3\x0c\x15\x1a\x87q\x91\x82\xcc\xfe\x10\x00\x00'
 b'\x00\x8e\xcd\xd6\xb4+\xdf\x0fU<\xad\xcf9\xfc&\xcf\xd4\x1c\xdaw~\xd3\\\xba'
 b'\x87+\x9b\xe7\x93EN\x10\x1cL\x96NT\xcb\x113\xad\x8f\x0e\x14\x00\x00\x00Z'
 b'\x19j\x00\x00\x00n\xbf\xe5l\xf4\xb7\x01\xb5j\x00M\xf8Q\xe4\xea\xfd\xc5')

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

{'A1': [{'B1': 14,
         'B2': 20,
         'B3': {'C1': 52694,
                'C2': [-76, 43, -33, 15, 85],
                'C3': [60, -83, -49, 57, -4],
                'C4': 2796687114009804499}},
        {'B1': 25,
         'B2': 106,
         'B3': {'C1': 23738,
                'C2': [-121, 43, -101, -25, -109],
                'C3': [69, 78, 16, 28, 76],
                'C4': -7616056688693236337}}],
 'A2': [15222875834411831459,
        7816918560532233428,
        17792421864252354337,
        200487714402328902,
        12033222497222781389,
        17224993686637030841],
 'A3': -0.4351823129194199,
 'A4': 54,
 'A5': {'D1': 9930,
        'D2': -20296,
        'D3': 0.9211890697479248,
        'D4': 21,
        'D5': 1911621436620733968},
 'A6': {'E1': -0.6695502828930959, 'E2': 21946603823365573}}

Вариант №24

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x45 0x55 0x4b 0x45, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Адрес (uint32) структуры B
2 uint8
3 uint8
4 Массив char, размер 7
5 float
6 Размер (uint32) и адрес (uint16) массива int16
7 int8

Структура B:

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

Структура C:

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

Структура D:

Поле Описание
1 uint32
2 int64

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

Пример 1

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

(b'EUKE\x90\x00\x00\x00 Inzstazza \xcb\xbe\x04\x00\x00\x00\x9c\x00@'
 b'\xd4\x9b\x85\x1f\xd5\x9b\xe9\xbfL\xb6\x82F\xc5\xdc\xd6\xbf\xb0=\x06\x08'
 b'\x98\x12\xc0\xbf"9\x85\x95\x1e-\xe3\xbf\xfe\xd2\x96\x1b2\xbf\xe5\xbf\x08N:/'
 b"'A\xe5\xbfx\x05\xed\xb1]:\xe6\xbf\x9f\x90\xcc\xbc\xb2,Q\xdc\xd47\xce\xc3"
 b'\xcd\x9b\x02\x00\x00\x00\x1c\x00\x00\x00.\xecA\xd1\xcf\xb3\x8c\x86\xd2X'
 b'\xf9\xc04g\x1bY\t\xe3\xb0\x9a{\x93\x05\x00\x00\x00,\x00\x00\x00\x83\xc7@\xa6'
 b'\x0c\xee\n\xa3\x02\x00T\x00\x7f \xc9\x93h%K2\x01\r\xea?\xaf\x1fL\xc5')

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

{'A1': {'B1': [{'C1': 37023,
                'C2': {'D1': 749911244, 'D2': -7219899337137660847},
                'C3': [-0.8002725234663282, -0.35722476850319107],
                'C4': -8751422270737355730},
               {'C1': 22738,
                'C2': {'D1': 1731510521, 'D2': -7819486243484772069},
                'C3': [-0.12556743995490427,
                       -0.5992577476806995,
                       -0.6795893229342196,
                       -0.6642032549302153,
                       -0.6946247553934617],
                'C4': -6698279757663910013}],
        'B2': 3624031456235954303},
 'A2': 32,
 'A3': 73,
 'A4': 'nzstazz',
 'A5': -0.3967314064502716,
 'A6': [3329, 16362, 8111, -15028],
 'A7': 64}

Пример 2

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

(b'EUKE\xa0\x00\x00\x00\xb3\xd8bgahddv\xb4\x96/?\x04\x00\x00\x00\xac\x00\xc4'
 b'\xf8i\xdb"\x86[\xc5\xbf\x90-a\x98\x86k\xea?P\x93yY\xfaj\xe0\xbf\xf0~\xa1K'
 b'\x87\xf1\xb5\xbf\x16}\x88\xc25\xfa\xe6\xbf\x8a\x99\x93LX\x9e\xe6?'
 b'\xa0\xd7\x86\xc2<\x13\xed?L\x96\x1c\xd5B\xea\xde\xbf\xa0\xdd\x84r'
 b'\x10J\xc9\xbf\x0eKJ\\AZ\xbd\x1bPt\x90\x8d\xe1\xa4\x05\x00\x00\x00\x1c\x00'
 b'\x00\x00\x9e\x9em\x1ee?\xe5\xea\xaaUf\xd0\x16\x03\xa8-\n\x1b5\xd2\xf0\xe2'
 b'\x04\x00\x00\x00D\x00\x00\x00Q\x02%m\x0eK\xcf\xf3\x02\x00d\x004\xd2\xd65'
 b'7\xa7Jy\xef<\x90\xdaJ\xf1\xea\x02')

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

{'A1': {'B1': [{'C1': 19214,
                'C2': {'D1': 1514232906, 'D2': -6565811130163258435},
                'C3': [-0.1668555898857702,
                       0.8256257034458248,
                       -0.5130588290745468,
                       -0.08571668240028507,
                       -0.7180432128406291],
                'C4': -1520739595632927074},
               {'C1': 21930,
                'C2': {'D1': 51826790, 'D2': -2093942701198529112},
                'C3': [0.7068292136798828,
                       0.9085983085012579,
                       -0.48304816066442835,
                       -0.1975727614569509],
                'C4': -878400876981190063}],
        'B2': 8739981882434179636},
 'A2': 179,
 'A3': 216,
 'A4': 'bgahddv',
 'A5': 0.6858932971954346,
 'A6': [15599, -9584, -3766, 746],
 'A7': -60}

Вариант №25

Задача №12

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

Структура A:

Поле Описание
1 int16
2 Адрес (uint32) структуры B
3 float
4 uint8
5 Размер (uint32) и адрес (uint16) массива адресов (uint16) структур C
6 uint32
7 int64
8 Структура D

Структура B:

Поле Описание
1 uint32
2 float

Структура C:

Поле Описание
1 int16
2 int16

Структура D:

Поле Описание
1 int8
2 Адрес (uint32) структуры E
3 int8

Структура E:

Поле Описание
1 uint64
2 int8
3 int32
4 Размер (uint32) и адрес (uint32) массива uint16
5 Адрес (uint32) структуры F

Структура F:

Поле Описание
1 uint16
2 int16
3 float
4 Массив double, размер 6
5 uint16
6 Массив int8, размер 3
7 uint8
8 int8

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

Пример 1

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

(b'JNPy\xa6&\x00\x00\x00\x13:W\xbf\x10\x02\x00\x00\x006\x00\xb9\xed\x0e\xb7'
 b'\xacd\x87N}\x83\xf5\xe5i\x7f\x00\x00\x00\xdc\xe1-\xec8\xb3R2\xbf\xc5\x1e'
 b'\x8cF\xce5\x04\xef.\x002\x00YO\xdaE}\x0c\x80W\x07{({\x95\xbe`\xbe\x03]'
 b'\xb5\xd5\xd8\xbf\x86\xde"\x90\xa6\xc4\xe6?P\x97\x1fi\xa2J\xe6?\xb8\xe9T\x1c'
 b'aY\xd2?H\xcd\x90J+v\xd5?R3\xcbS\xf7\xb4\xe9\xbf%R\xa3\xfa\xebU\xee\xb6'
 b'\x02"\x00\xc8\x0cg\xd7c\xb83\xf1\x85\x03\x00\x00\x00:\x00\x00\x00'
 b'@\x00\x00\x00')

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

{'A1': -22919,
 'A2': {'B1': 955002337, 'B2': -0.6965743899345398},
 'A3': -0.8407298922538757,
 'A4': 16,
 'A5': [{'C1': 7877, 'C2': 18060}, {'C1': 13774, 'C2': -4348}],
 'A6': 3071208889,
 'A7': -1876449095518296916,
 'A8': {'D1': 105,
        'D2': {'E1': 15521388693890925238,
               'E2': 99,
               'E3': -2047790152,
               'E4': [20313, 17882, 3197],
               'E5': {'F1': 22400,
                      'F2': 31495,
                      'F3': -0.29195523262023926,
                      'F4': [-0.38804372867068615,
                             0.7115052046928703,
                             0.6966106465522248,
                             0.2867052818943665,
                             0.33533746988105806,
                             -0.8033405911061016],
                      'F5': 21029,
                      'F6': [-93, -6, -21],
                      'F7': 85,
                      'F8': -18}},
        'D3': -36}}

Пример 2

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

(b'JNP\xd2+&\x00\x00\x00x\xd1:?\x94\x02\x00\x00\x006\x00\x18\xda\x87\xcc'
 b'\xd9\xe5\x90\xb7\xf4\xf0>\xdd\xc5}\x00\x00\x00FNSn\xa3\xc6I.?j\x00'
 b'~\xba\xa3\xdd\x1c\xf0.\x002\x00xT\x17?\xb1\xb8L/\x19\xab\x0c\xbd\x04S'
 b'\x9d@z\xb0\xee?\xe8\xb9\t\x91\xcfO\xe9\xbf\xb2\x03\xfa\xe9\x89\xb4'
 b'\xe3\xbfJ\x98\xb8z}\xd2\xe7\xbf\xf0\x0eW\x18M|\xc3?\x00\xae\xba\xe4\x9a\x8b'
 b'c\xbf\xa4<\xa5\xfad\xd4\xc7QO\x9b\x16\x8b;\x1cN\x06\xcb\n2\xbe\x02\x00'
 b'\x00\x00:\x00\x00\x00>\x00\x00\x00')

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

{'A1': 11218,
 'A2': {'B1': 2741916494, 'B2': 0.680813193321228},
 'A3': 0.7297587394714355,
 'A4': 148,
 'A5': [{'C1': 106, 'C2': -17794}, {'C1': -8797, 'C2': -4068}],
 'A6': 3431455256,
 'A7': -2504299408929004071,
 'A8': {'D1': -59,
        'D2': {'E1': 5628439102872047441,
               'E2': 6,
               'E3': -1104016693,
               'E4': [21624, 16151],
               'E5': {'F1': 47281,
                      'F2': 12108,
                      'F3': -0.03434285894036293,
                      'F4': [0.9590426694872751,
                             -0.7909925301335621,
                             -0.615788418756088,
                             -0.7444445988555881,
                             0.15223087013702452,
                             -0.002385904814067308],
                      'F5': 15524,
                      'F6': [-91, -6, 100],
                      'F7': 212,
                      'F8': -57}},
        'D3': 70}}

Вариант №26

Задача №12

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

Структура A:

Поле Описание
1 uint16
2 int16
3 uint64
4 Структура B
5 Размер (uint32) и адрес (uint16) массива uint16
6 uint64

Структура B:

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

Структура C:

Поле Описание
1 Массив адресов (uint16) структур D, размер 4
2 Размер (uint32) и адрес (uint16) массива int8
3 float

Структура D:

Поле Описание
1 uint16
2 Массив uint8, размер 3

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

Пример 1

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

(b'KXHx/\x8e)\xd2}-\xdc\nW\xa8\xce\xf3B\x00G\x00L\x00Q\x00\x04\x00\x00\x00'
 b'V\x00\xa3\x97N\xbe\xe0\x836\x84\x17]\x8b\xad9\xedS\xe6\xe7\x1d2\xc2\xfa\x8c'
 b'\x05\x00\x00\x00Z\x00\xb6\xae\x8eo.R\xd8\xd7\xacs\xf3\x1a\xf8Q\xa2\xf96\x8a'
 b'=\xdd\xf4\xd6\x04p\x1a\xe1\xb7\x15K\xc7\xd6\xa6P\x02\x7f\x10\xbcy'
 b'\xe1\xa9\x9a\x04')

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

{'A1': 36399,
 'A2': -11735,
 'A3': 17568164288216706429,
 'A4': {'B1': {'C1': [{'D1': 29612, 'D2': [243, 26, 248]},
                      {'D1': 41553, 'D2': [249, 54, 138]},
                      {'D1': 56637, 'D2': [244, 214, 4]},
                      {'D1': 6768, 'D2': [225, 183, 21]}],
               'C2': [75, -57, -42, -90],
               'C3': -0.20175032317638397},
        'B2': -5941552927801441312,
        'B3': 13993279874032463161,
        'B4': 36090},
 'A5': [592, 4223, 31164, 43489, 1178],
 'A6': 15553271672517602998}

Пример 2

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

(b'KXHx]j\x18\x8f.\xd1\x04\xa3\x0e\x91.HB\x00G\x00L\x00Q\x00\x03\x00\x00\x00'
 b'V\x00\xa0v\x07>\xb1\x86\xbaQ\xb7i\x0fx{\xc4\xc0\x03\xdf\xc2c\xde\x1f\x98'
 b'\x03\x00\x00\x00Y\x00\xf27\x9d\x03\xa4\x169O)\xccSmLK\x00\xf9\x1d\xf9.D&\x1a'
 b'3`\x1b:\xfb\rq\xdeN\xfc\xeb\x8b\xe60H')

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

{'A1': 27229,
 'A2': -28904,
 'A3': 5201254111710073134,
 'A4': {'B1': {'C1': [{'D1': 52265, 'D2': [83, 109, 76]},
                      {'D1': 75, 'D2': [249, 29, 249]},
                      {'D1': 17454, 'D2': [38, 26, 51]},
                      {'D1': 7008, 'D2': [58, 251, 13]}],
               'C2': [113, -34, 78],
               'C3': 0.13228845596313477},
        'B2': 8651249645273122481,
        'B3': 16024866162210817147,
        'B4': 38943},
 'A5': [60412, 59019, 18480],
 'A6': 5708618896359897074}

Вариант №27

Задача №12

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

Структура A:

Поле Описание
1 Структура B
2 int16
3 int8
4 Структура D
5 Размер (uint32) и адрес (uint32) массива int16

Структура B:

Поле Описание
1 int16
2 Массив структур C, размер 5
3 int16
4 Массив double, размер 7

Структура C:

Поле Описание
1 Массив int8, размер 4
2 uint64

Структура D:

Поле Описание
1 uint16
2 int64

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

Пример 1

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

(b'OMTV\x0cx\xa0T\t\rLT-\x97\x8b\x12\x18\xb0\x0e\xa7\xc7\xb9g\xb8w\x9dV\x0e'
 b'M\x11\x96\x15\xcc\xf1\x812\xf4\xf2\t\xa9X\xf9\xf0\x13\xcc\xa8\xd7\nF\xd8cn'
 b'\xb5\x85f\xe1\x04K\xe8\xeeO\xdc\xeb\xa3L\n\x1d\x04\x04?\xe5\x12\x90\x04\xe1T'
 b'\x02\xbf\xad\xda\xab\xb9\xf7\xfb ?\xde\x04\xa9q\xff\x1a\x08?\xeb\xd2'
 b'\x02y\x97(b?\xe5n\xf8\xae\x13VL\xbf\xect(L"\xd5\xe2?\xe2\xfc`uV\xbd'
 b'.\x8e\xb7L\xf3T\\f\xc0\xb3\xe7\xe0\x0f\x14\x00\x00\x00\x05\x00\x00'
 b'\x00\x92\xae\xb8\xd4\xa7\x13\x0e\xfe;\x99=')

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

{'A1': {'B1': 30880,
        'B2': [{'C1': [84, 9, 13, 76], 'C2': 6065670896697782286},
               {'C1': [-89, -57, -71, 103], 'C2': 13292265818139988374},
               {'C1': [21, -52, -15, -127], 'C2': 3671825719523604976},
               {'C1': [19, -52, -88, -41], 'C2': 740517110319777126},
               {'C1': [-31, 4, 75, -24], 'C2': 17172186808802085405}],
        'B3': 1028,
        'B4': [0.65851593926584,
               -0.05830895085454402,
               0.4690345395323736,
               0.8693859457791968,
               0.6697963142311862,
               -0.8891793715508209,
               0.5933077136777791]},
 'A2': -29001,
 'A3': 76,
 'A4': {'D1': 62292, 'D2': 6658220978035756820},
 'A5': [-20808, -11097, 4878, -453, -26307]}

Пример 2

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

(b'OMTV\x0c\xd9\x9d\x9d_\x894\x17\x99\x7fc\xbaA\xc9M\xbd\x95\x9c\xd0 \x1d\xcbC{'
 b'\xa2O2\xf0H\x86\x1b&\xed\xf5\xff\xfa4v\xaa\x16q\x9d@\xa2U\xee"\xb7'
 b"'\xa83\x06\x84\xe9]\x1c\xf7$u[\xb2\x133\xc0\x11\xbf\xe5d\x05\x8d-\xb2"
 b'\xbe?\xcc\xc1\xc7?\x92v\xd8\xbf\xefH\xef\x86\x1d\xce&?\xce\x95#A\xfc\xec'
 b'\xa8?\xe3\xb4\xdcup$\xe6?\xc3\xb5\xba\x06n3\xb8\xbf\xeb\xa7?\xad\xed!'
 b'\x08O\x0f[\x86\x1e\xb1\xb0WuUv\x90\xd0\x00\x00\x00\x04\x00\x00\x00\x92#Q'
 b'=\xd5\xa7\x08\r\xb4')

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

{'A1': {'B1': -9827,
        'B2': [{'C1': [-99, 95, -119, 52], 'C2': 1700530400612436301},
               {'C1': [-67, -107, -100, -48], 'C2': 2314229274235785010},
               {'C1': [-16, 72, -122, 27], 'C2': 2805168622684894890},
               {'C1': [22, 113, -99, 64], 'C2': 11697517440033859635},
               {'C1': [6, -124, -23, 93], 'C2': 2087177038777684787}],
        'B3': -16367,
        'B4': [-0.6684596784012553,
               0.2246636448298236,
               -0.9776532763921224,
               0.23892632219380983,
               0.6158277791702431,
               0.1539833575629055,
               -0.8641661068914184]},
 'A2': 20239,
 'A3': 91,
 'A4': {'D1': 34334, 'D2': -5642914171638607664},
 'A5': [9041, 15829, -22776, 3508]}

Вариант №28

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x99 0x51 0x5a 0x4b 0x42, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Размер (uint32) и адрес (uint16) массива char
2 uint16
3 Адрес (uint32) структуры B
4 Размер (uint16) и адрес (uint16) массива char
5 uint64
6 Массив float, размер 8

Структура B:

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

Структура C:

Поле Описание
1 int32
2 int8
3 double
4 int64
5 float

Структура D:

Поле Описание
1 uint32
2 int8

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

Пример 1

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

(b'\x99QZKB\x00\x00\x00\x03\x00=\x054\x00\x00\x00U\x00\x03\x00vj*\x1f'
 b'\xf8\xef\xcb\xb7$\xbf~a`>\xbe\xf8\xc5?aVb\xbf5U\x96\xbfh,\x1b\xbfiS'
 b'r\xbc\x95v\xd8\xbfE\x9fPmfq\xf1\x97\xec+_c\x8d\xeb\x1c\xf1\x1d\x81'
 b'\x90\xf9\xcf\x00@\x00E\x00J1\xdbh\x0c\xdb?\xe8\xf8\xac\x99#\xa6\x98\xe4!'
 b'\xde\xad\x8f}r\x98\xbdigJ\x00\x00\x00\x03\x00\x00\x00Ooud')

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

{'A1': 'mfq',
 'A2': 1332,
 'A3': {'B1': {'C1': 836462604,
               'C2': -37,
               'C3': 0.7803557387353122,
               'C4': -2008079121812458856,
               'C5': -0.05698326975107193},
        'B2': [{'D1': 4053265451, 'D2': 95},
               {'D1': 1670245148, 'D2': -15},
               {'D1': 495030521, 'D2': -49}]},
 'A4': 'oud',
 'A5': 7649962071077664548,
 'A6': [-0.9936733245849609,
        0.3729917109012604,
        0.880224347114563,
        -0.7083371877670288,
        -0.9069229960441589,
        -0.9114295244216919,
        -0.018245145678520203,
        -0.7719621658325195]}

Пример 2

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

(b'\x99QZKB\x00\x00\x00\x03\x00=QT\x00\x00\x00\\\x00\x04\x00}\\\xfdT'
 b'\x82\xf9!\xc1\xa3\xbe\xc2&\x92\xbd\x05\xdd\x9d\xbf\x11K\t\xbe\xb6\x0e'
 b'??\x03\xd2\x14\xbe\x90\x10\xa3\xbffz6\xbeI1\x07rko\xeb\xfa\xb9K'
 b'\x11\xa5\x1d\\\xff\x1f\xbb}\xf6\xf7d\x8a\x80\xcf^\x1b\x00@\x00E\x00J\x00O'
 b')\x11=&:\xbf\xb4\x85\xec\x0b1\xa8\xc0\xd4L\xf5\xd7;f\xc4\x8f?/\xd2'
 b'\xa4\x00\x00\x00\x04\x00\x00\x00Taegd')

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

{'A1': 'rko',
 'A2': 20820,
 'A3': {'B1': {'C1': 688995622,
               'C2': 58,
               'C3': -0.08016848824778133,
               'C4': -3148871734675454833,
               'C5': 0.6868078708648682},
        'B2': [{'D1': 3959077195, 'D2': 17},
               {'D1': 2770164991, 'D2': 31},
               {'D1': 3145594615, 'D2': 100},
               {'D1': 2323697502, 'D2': 27}]},
 'A4': 'aegd',
 'A5': 6700604742099386787,
 'A6': [-0.3792005181312561,
        -0.03268205001950264,
        -0.5675511956214905,
        -0.3555774390697479,
        0.5149242877960205,
        -0.2813769280910492,
        -0.9003022909164429,
        -0.19647608697414398]}

Вариант №29

Задача №12

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

Структура A:

Поле Описание
1 uint16
2 Структура B
3 uint64
4 float
5 int32
6 Структура C

Структура B:

Поле Описание
1 float
2 uint16

Структура C:

Поле Описание
1 int8
2 uint64
3 Адрес (uint16) структуры D
4 float

Структура D:

Поле Описание
1 Массив адресов (uint32) структур E, размер 2
2 Адрес (uint16) структуры F

Структура E:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива uint8
2 float

Структура F:

Поле Описание
1 Размер (uint16) и адрес (uint16) массива int16
2 int16
3 Массив int8, размер 4
4 uint8
5 uint32
6 Размер (uint16) и адрес (uint16) массива float

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

Пример 1

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

(b'iIGXZ<\xd5\xea\x17\xda\xbd\x8d\xaa\xfd\xc9c\xe2/D1\xa0\xd0]]?\xbcz\xa2'
 b'\xa4$\xae[\n\xce\x19|\xee\xeag\x00]\x84\xa9\xbe\xac\x0c\x02\x00,\x00\x00\x00'
 b'\x1e\xe3\xb3\xbd\xc4\xa3\x02\x008\x00\x00\x00\r\xe8>?*\xfd\xed\x9a\xc9\x90H?'
 b'\xb7\xb9t\xbe\x8d\xb3\xdb\xbe\x02\x00D\x00\xa7\xfc\x8c\x1c\xad\xc0\x1e\x01'
 b'\x1a+3\x03\x00H\x00.\x00\x00\x00:\x00\x00\x00T\x00')

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

{'A1': 54588,
 'A2': {'B1': -0.10649092495441437, 'B2': 43661},
 'A3': 11543082292379634173,
 'A4': 0.8647127151489258,
 'A5': -1532855620,
 'A6': {'C1': 36,
        'C2': 16928604499605085102,
        'C3': {'D1': [{'E1': [172, 12], 'E2': -0.08783553540706635},
                      {'E1': [196, 163], 'E2': 0.7457283139228821}],
               'D2': {'F1': [-726, -25875],
                      'F2': -857,
                      'F3': [-116, 28, -83, -64],
                      'F4': 30,
                      'F5': 858462721,
                      'F6': [0.7834592461585999,
                             -0.2389896959066391,
                             -0.4291042387485504]}},
        'C4': -0.33108797669410706}}

Пример 2

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

(b'iIGXZ\xde\xdd\xc9\x10\x8c>\xc1\xf5\xe8\x90\xb7\x90\x01\xb3\x9e\x12\x7f=G?4Rr'
 b'\x06\xde\x9f\x9eP\xb8\xba\x0b\xeb\xb7c\x00\xb7\xc3\xca>\xe3?\x02\x00'
 b',\x00\x00\x00T-\xda>\xd2\xf8\x02\x008\x00\x00\x00\x86\xba\x08?\xcfc|W'
 b'\tN\x9d\xbe\xb0V\xd4\xbe\x02\x00D\x00\xcc\xf0\x02\x89\xee\r\xbe\xb0'
 b'.\xe6K\x02\x00H\x00.\x00\x00\x00:\x00\x00\x00P\x00')

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

{'A1': 56798,
 'A2': {'B1': 0.2735655605792999, 'B2': 62913},
 'A3': 1341706558307274984,
 'A4': 0.778282105922699,
 'A5': 108155444,
 'A6': {'C1': -34,
        'C2': 13252699225051930271,
        'C3': {'D1': [{'E1': [227, 63], 'E2': 0.4261270761489868},
                      {'E1': [210, 248], 'E2': 0.5340961217880249}],
               'D2': {'F1': [25551, 22396],
                      'F2': -3892,
                      'F3': [2, -119, -18, 13],
                      'F4': 190,
                      'F5': 1273376432,
                      'F6': [-0.307235985994339, -0.41472387313842773]}},
        'C4': 0.3960244357585907}}

Вариант №30

Задача №12

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

Структура A:

Поле Описание
1 uint8
2 Структура B
3 uint64
4 Структура C

Структура B:

Поле Описание
1 Размер (uint32) и адрес (uint16) массива char
2 uint32
3 float

Структура C:

Поле Описание
1 int32
2 Размер (uint32) и адрес (uint32) массива адресов (uint32) структур D
3 Массив float, размер 4
4 uint64
5 Структура E
6 Адрес (uint32) структуры F
7 int32

Структура D:

Поле Описание
1 int32
2 uint16
3 uint8

Структура E:

Поле Описание
1 int32
2 int16
3 Размер (uint16) и адрес (uint32) массива uint16
4 uint8
5 int64

Структура F:

Поле Описание
1 uint8
2 double

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

Пример 1

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

(b'\\XJPXl\x00\x00\x00\x02\x00]\xf4U\xeeV>\xc5\xee\x13\xae\xec\xcb\xae'
 b'\x06\x07!#\xc0U\xf0p\x00\x00\x00\x06\x00\x00\x00\x89\xbe\x88\xa3\x02?w\xfa1'
 b'\xbfd\x95\xc0?20\xa1\x0f\xd2\xd4\x16\x08\xa0}\xcc\t\x96\xeb\xad|\x06\x00\x02'
 b'\x00\x00\x00\xa1\x1c\x88&j\xf2\x83\r\x07\x10\x00\x00\x00\xa5\xcfZ~Dlm\xc7'
 b'=x3k\xea\xc1\xa0\xb4,\rGMB3\xf0<\xa9\x1b\xc2\x8b\xa1\xc7N\x00K\xdc\xf6*'
 b'@O\xad\xdaI\x8b\xecL\xec\xb2\xe1g\x16\x00\x00\x00_\x00\x00\x00f\x00\x00\x00'
 b'm\x00\x00\x00t\x00\x00\x00{\x00\x00\x00\x82\xb7j\x99\xdd\x01\xbf\xd7'
 b'\x82X\xc1\xbc\xad ')

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

{'A1': 108,
 'A2': {'B1': 'lm', 'B2': 4099272278, 'B3': 0.38658198714256287},
 'A3': 12604673405389054243,
 'A4': {'C1': -1068109712,
        'C2': [{'D1': -952272845, 'D2': 27626, 'D3': 193},
               {'D1': -1598804979, 'D2': 18253, 'D3': 66},
               {'D1': 871382185, 'D2': 7106, 'D3': 139},
               {'D1': -1580773888, 'D2': 19420, 'D3': 246},
               {'D1': 708857773, 'D2': 55881, 'D3': 139},
               {'D1': -330502990, 'D2': 57703, 'D3': 22}],
        'C3': [-0.2668686509132385,
               0.968661367893219,
               -0.8929100036621094,
               0.6960545182228088],
        'C4': 1140206846777261516,
        'C5': {'E1': 160885677,
               'E2': 31750,
               'E3': [46954, 39389],
               'E4': 28,
               'E5': -8636097645623048432},
        'C6': {'F1': 1, 'F2': -0.3673307315791181},
        'C7': -816153020}}

Пример 2

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

(b'\\XJPX=\x00\x00\x00\x02\x00]^\t7\xb6\xbfL\x83k\xf5\x1a\xbdE\xdf\xb3AF{DN\x0b'
 b'\x00\x00\x00\x02\x00\x00\x00m\xbe\xaa\xe8S\xbf\r2\x9c\xbd\xd8D\xba\xbfkh\xa1'
 b'~\xf2X\x92[8\x1e\xff1\xe8b$*s\x00\x03\x00\x00\x00u\xbc&\xe8j[\x83\xa5\xfe'
 b'x\x00\x00\x00{[\x86)Cxa\xd7\xb5\x0e\xfcF\xdc\xcaj;\x1a\xcca\xf5l\x00\x00\x00'
 b'_\x00\x00\x00f\x1d\x98\xf7\xd8\xfbh\xbc\xbf\xe2\x11\x17>LK\x1e')

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

{'A1': 61,
 'A2': {'B1': 'xa', 'B2': 1577662390, 'B3': -0.7988802790641785},
 'A3': 17661636996490281286,
 'A4': {'C1': 2068073995,
        'C2': [{'D1': -676000004, 'D2': 18140, 'D3': 202},
               {'D1': 1782258380, 'D2': 25077, 'D3': 108}],
        'C3': [-0.3338037431240082,
               -0.55155348777771,
               -0.10559983551502228,
               -0.9195652604103088],
        'C4': 9147471178761772799,
        'C5': {'E1': 837313060,
               'E2': 10867,
               'E3': [7576, 63448, 64360],
               'E4': 188,
               'E5': 2803607709321395832},
        'C6': {'F1': 188, 'F2': -0.5645862786062457},
        'C7': 1535519043}}

Вариант №31

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x22 0x54 0x4b 0x56, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 float
2 int16
3 int8
4 uint8
5 Структура B
6 Массив структур D, размер 3

Структура B:

Поле Описание
1 Массив char, размер 4
2 uint16
3 Структура C
4 uint8

Структура C:

Поле Описание
1 uint32
2 int16
3 double

Структура D:

Поле Описание
1 double
2 int16
3 float
4 Массив int32, размер 4
5 Массив int16, размер 6

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

Пример 1

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

(b'"TKV\x90\xde\x13>\xb4\x94`Cxjmg\xfc}[\x1du\x17\xa6\x94\x84\xe2`\xb5'
 b'pm\xe6\xbf\x0f\xb0QA\x93:E\xd8\xbf:\xc7$\xd3L\xbe9M`\x1dwF\x9a\x05\xf0'
 b"\x01\x7f\xfc'V\xbe\x8ad\xce\xb1:\xfaj\x0f\xac_O\xa9c\x80\x90_\xb0\x1e"
 b'!\x90\xbfq\x9d\r\xa2\x17?<\x87!\xe0\x8f\xa8\xa7\x85R\x0b\xdc\x97\x06\xe3|'
 b"G,+!\xc2I#0\xfbYN\x8c'8\x00\xa8\x15\x11Y\xd7\xbf@\\\xffa^?\x15\xe7+v|"
 b'\xef}\xc6\xf4]\xc7\xc9ky\xef\xaf_uza`3\x13\xcc\xe4w\x9d\xa1')

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

{'A1': 0.14440369606018066,
 'A2': -27468,
 'A3': 96,
 'A4': 67,
 'A5': {'B1': 'xjmg',
        'B2': 32252,
        'B3': {'C1': 393551195, 'C2': -27482, 'C3': -0.7008594076679207},
        'B4': 15},
 'A6': [{'D1': -0.37922539120088583,
         'D2': -14534,
         'D3': -0.20002418756484985,
         'D4': [492850489, 93996663, -58785296, -1967237593],
         'D5': [-12700, 15025, 27386, -21489, 20319, 25513]},
        {'D1': -0.015751342310878602,
         'D2': -25231,
         'D3': 0.5923164486885071,
         'D4': [-534673604, -2052609905, -1747186862, 1199366918],
         'D5': [11052, -15839, 9033, -1232, 20057, 10124]},
        {'D1': -0.36481120219105234,
         'D2': 23616,
         'D3': 0.8686828017234802,
         'D4': [1982588693, -964825220, -909681164, -1343260309],
         'D5': [30047, 24954, 13152, -13293, 30692, -24163]}]}

Пример 2

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

(b'"TKV\x0c\xe6,?u\xbe\x83\x17agdc\xf6\x9cA\x93\x07\x8c\xcc\xc6\x0e\xe0%l'
 b'|>\xe4?an\xfa\xe2\xfd\x05\xce\xe2?\xe8\xe4\r\x80\x00\xbe.e\xc5\xfa\x8b'
 b'\x8c\x909\xdaL\x07\x0c\x92\xdb#\xcb\x08\xe1:\xe0~\xd1T\xb2\x0f\xa8\x1dN\xdc'
 b'\x83 \xff\xad\xdf\xd1?T\xbcX\x8f>\xbe\xe9\x07\x8f@9\xd9g\x04Y\xeaGoo<\xdc'
 b'g\x1fe\x14(\xc91\xad\x03_a\xd9\x86B\xcf\x17\x91~\xde\xea\xbfD\xdf\x89'
 b'\xcd\x1e?\x85\x13\xcd\xab%%\xe7\xd9}\x8c\x93_\xa2\x03f\xd4\xd1'
 b'\xf1\xe1\x0e\x1e\xfbf\xfa\xde0Z\x94')

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

{'A1': 0.6753852367401123,
 'A2': -16779,
 'A3': -125,
 'A4': 23,
 'A5': {'B1': 'agdc',
        'B2': 40182,
        'B3': {'C1': 2349306689, 'C2': -14644, 'C3': 0.6326276886238718},
        'B4': 97},
 'A6': [{'D1': 0.5876493414614978,
         'D2': -6936,
         'D3': -0.12548847496509552,
         'D4': [-87726802, 965774475, 201805018, -886842478],
         'D5': [-7928, -8134, -11906, -19884, -22513, 19997]},
        {'D1': 0.27927732386348025,
         'D2': -17324,
         'D3': -0.18609368801116943,
         'D4': [1083115497, 73914681, 1866984025, 1742486639],
         'D5': [25887, 10260, 12745, 941, 24927, -31015]},
        {'D1': -0.8396599611137179,
         'D2': -8380,
         'D3': 0.6203237175941467,
         'D4': [-1412623483, -639163099, 1603505277, -731511902],
         'D5': [-3631, 3809, -1250, -1434, 12510, -27558]}]}

Вариант №32

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x56 0x56 0x52 0x42 0x2b, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 uint16
2 int8
3 Размер (uint16) и адрес (uint16) массива структур B
4 uint32
5 uint32
6 Размер (uint16) и адрес (uint16) массива float

Структура B:

Поле Описание
1 Адрес (uint16) структуры C
2 float

Структура C:

Поле Описание
1 int64
2 int32
3 Размер (uint16) и адрес (uint16) массива uint16
4 double
5 int32
6 Адрес (uint32) структуры D

Структура D:

Поле Описание
1 float
2 Массив uint16, размер 2
3 uint8
4 Размер (uint32) и адрес (uint32) массива int8
5 int16
6 uint16

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

Пример 1

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

(b'VVRB+\xf2\tR\x00\x02\x00\x97:\n\x0c"\xccj\xa18\x00\x02\x00\xa3BA\xbei)\xd1,{'
 b'\x9f\x90\xbf/TU\xaa\xaehAJ\x00\x00\x00\x02\x00\x00\x00 Z\x86\xa8T\xe2eT\xddl'
 b'e\xe5>\xc8\xd8F \x00\x04\x00\x18?\xcc\x10j&\xdb\x0b\xa8|..\x16\x00\x00\x00"p'
 b"\x1e\xf8\xf9\xc5)\x8e\x7fH\xee~=\xa1\x8c\xc2\xba\x15\xd1'\xb6\x00"
 b'\x00\x00\x03\x00\x00\x00_\x049zmr\x18\xec\xceD3\x92r?\x16\x99\x82\x00'
 b'\x04\x00W?\xec\x05\xd3\xd37\xd9\xa2@\xb0/\xd4\x00\x00\x00b\x007\xbf\\%'
 b'\xb1\x00w=\x80ao?\x14\x1fG\xbe\xaf\xcc\xbc')

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

{'A1': 61961,
 'A2': 82,
 'A3': [{'B1': {'C1': -2133205538506939074,
                'C2': -925350368,
                'C3': [16961, 48745, 10705, 11387],
                'C4': 0.2192509355282628,
                'C5': 2083401238,
                'C6': {'D1': -0.6848805546760559,
                       'D2': [43694, 26689],
                       'D3': 74,
                       'D4': [-97, -112],
                       'D5': 23174,
                       'D6': 43092}},
         'B2': -0.8599501252174377},
        {'B1': {'C1': 8221581490416489074,
                'C2': 1058445698,
                'C3': [28702, 63737, 50473, 36479],
                'C4': 0.8757113576273705,
                'C5': 1085288404,
                'C6': {'D1': 0.07888175547122955,
                       'D2': [47637, 53543],
                       'D3': 182,
                       'D4': [72, -18, 126],
                       'D5': 1081,
                       'D6': 31341}},
         'B2': 0.06268583983182907}],
 'A4': 973736994,
 'A5': 3429540152,
 'A6': [0.5786022543907166, -0.3433588743209839]}

Пример 2

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

(b'VVRB+\x18\xed\xad\x00\x02\x00\x98\xa3c\xae\xa4\x94\x84kv\x00\x05\x00\xa4'
 b"\x994[\xb0?`\x8eU\x1c\xff\xcd\xd4\xbf'`\x85\xaa\xc9l\x03\xd5\x00\x00\x00"
 b'\x02\x00\x00\x00"h\x98}u\xd6ht\xf1\xfe\xa69\xe5\x8a\xac)\xdd\x00\x05\x00'
 b'\x18\xbf\x86\xf3\x06\x97!)\x00\xb3\xe1/@\x00\x00\x00$yF!\x89\xa0\xc5\xbe'
 b'\xc8T\x8d\xbd\x12}N&U\x9e\xa2\r\x00\x00\x00\x02\x00\x00\x00aU\n\x06f'
 b'\xaf\x95e\xfd(+\x0c\xd4[x\xecN\x00\x04\x00Y?\xd9H\xb4\xde64\x10\xc8/a\x8a'
 b'\x00\x00\x00c\x009?k\xb9\x1e\x00x?\x16\x9e\n\xbfy\x0f\xaf>\x9b(3>o\xc2\x1c'
 b'\xbf.\xab5\xbfU\xd6\xf3')

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

{'A1': 6381,
 'A2': -83,
 'A3': [{'B1': {'C1': -2997016969306818075,
                'C2': -1968428579,
                'C3': [39220, 23472, 16224, 36437, 7423],
                'C4': -0.011205722319705291,
                'C5': -1277087936,
                'C6': {'D1': -0.6538165211677551,
                       'D2': [43721, 27651],
                       'D3': 213,
                       'D4': [-51, -44],
                       'D5': 26776,
                       'D6': 32117}},
         'B2': 0.9207934141159058},
        {'B1': {'C1': -5794613207567233836,
                'C2': 1534651470,
                'C3': [31046, 8585, 41157, 48840],
                'C4': 0.39506265354504055,
                'C5': -936418934,
                'C6': {'D1': -0.03576403111219406,
                       'D2': [9813, 40610],
                       'D3': 13,
                       'D4': [84, -115],
                       'D5': 21770,
                       'D6': 1638}},
         'B2': 0.5883489847183228}],
 'A4': 2741218980,
 'A5': 2491706230,
 'A6': [-0.9728955626487732,
        0.3030410706996918,
        0.23413890600204468,
        -0.6822999119758606,
        -0.8353111147880554]}

Вариант №33

Задача №12

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

Структура A:

Поле Описание
1 Размер (uint32) и адрес (uint32) массива структур B
2 Адрес (uint16) структуры C
3 uint16
4 int64
5 int16

Структура B:

Поле Описание
1 float
2 double

Структура C:

Поле Описание
1 float
2 Адрес (uint16) структуры D
3 float
4 double
5 int64
6 Размер (uint16) и адрес (uint16) массива int32
7 int16

Структура D:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива uint16
2 Размер (uint32) и адрес (uint16) массива int64

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

Пример 1

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

(b'FJWQ\xd9\x02\x00\x00\x00\x1b\x00\x00\x00i\x00\xed\x91\x83\x0e\xd2'
 b'\xa2\xa7\xc1\x1a\xd3YJ`\xf2=\xbf4\xa1\xf0\xcb\xc0w\xe7?Q\xafP\xbfH@tv\xf7'
 b'\xbd\xca\xbf\x1f\xf1\nf\x99\xe8\xf8\xe9\x9f\x9f\x0c\xe7\xc8\xd0Q\xe6\x9a'
 b'\xbb\xa9B\xc2A\xe0|\xbb\xc5\x85\xc7"\x98\xbb\'\x82\x8b\x05\x003'
 b'\x00\x00\x00\x03\x00\x00\x00=\x00@\x9d\xdd\x98\x16\xaaU\x9e\x97\x1b\xb2'
 b'\xbeU\x00\x9a\xfe\x8e>\x80\xcbC\x84y}\xaf\xbf\x1c\xd9\x1fph\x87\xc9k\x02'
 b'\x00a\x00\x81\x92')

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

{'A1': [{'B1': -0.7419795989990234, 'B2': 0.7333682997896518},
        {'B1': -0.8151751160621643, 'B2': -0.20892232211963546}],
 'A2': {'C1': -0.3478667438030243,
        'C2': {'D1': [61727, 26122, 59545, 59896, 40863],
               'D2': [-4928373603134019828,
                      -4198624924975086935,
                      -8394103068800399483]},
        'C3': 0.2792862057685852,
        'C4': -0.0615041707950672,
        'C5': 7766887915004614940,
        'C6': [-1730306752, -1638553066],
        'C7': -28031},
 'A3': 37357,
 'A4': -3235060456576905597,
 'A5': 19033}

Пример 2

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

(b'FJWQ\xd9\x03\x00\x00\x00\x1b\x00\x00\x00q\x00?2[\xf2I\n_\xf0_\xe7:\xcf\xbb'
 b'\xabh\xbf8b\xa8)8\x8f\xc4?\xbbQ\xde\xbe\xb0S\x99\xe9\xd9\x10\xed?\xe0'
 b'\x92\x85>@\xa8h\x98r\xbd\xc7\xbf\xaa\xcf\xd3\x16z\xb5\x90\xab\xa8'
 b'\x18\x91K\x94\xa2\x8e6\x1f\x85\xaf\x17\x13\xb7&3V\xbc\x05\x00?'
 b'\x00\x00\x00\x02\x00\x00\x00I\x00k\xa7\xe1\x9d\xec\x8e\xaf2D\x8b\x9c'
 b'\xf22\x90\x8b>Y\x00\xf8\xe1Q?\x12\x89\x9b)\x11z\xea\xbf\x1a_xgX\x94\xdd1\x03'
 b'\x00e\x00\xc3\xae')

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

{'A1': [{'B1': -0.9088703989982605, 'B2': 0.16062070879049073},
        {'B1': -0.43421730399131775, 'B2': 0.9083070337752499},
        {'B1': 0.26088619232177734, 'B2': -0.18546898309551985}],
 'A2': {'C1': 0.2725844979286194,
        'C2': {'D1': [53162, 5843, 46458, 43920, 6312],
               'D2': [-8854298356146222191, -4875653305208727633]},
        'C3': 0.8198542594909668,
        'C4': -0.8274007618568098,
        'C5': 3593191185125498650,
        'C6': [-1646155925, 850366188, -224621756],
        'C7': -20797},
 'A3': 12863,
 'A4': -1774435437175508389,
 'A5': -12486}

Вариант №34

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xfd 0x57 0x50 0x4e 0x4f, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Адрес (uint32) структуры B
2 uint16
3 int64
4 Размер (uint16) и адрес (uint16) массива uint16

Структура B:

Поле Описание
1 Массив структур C, размер 7
2 double
3 Размер (uint16) и адрес (uint16) массива структур D
4 int8
5 Адрес (uint16) структуры E
6 uint8
7 int16

Структура C:

Поле Описание
1 uint16
2 int16

Структура D:

Поле Описание
1 Массив uint32, размер 3
2 uint16
3 int16
4 int64

Структура E:

Поле Описание
1 int64
2 int64
3 int64
4 float
5 int8
6 uint64
7 int64
8 uint8

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

Пример 1

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

(b'\xfdWPNO\x00\x00\x00u\xfdv0\x046U\x9f\xa2#x\x00\x08\x00\xa3\x02\x01\xeb?k'
 b'*\xcbx2\xc9\xa7Y\x9d|n\xa8\xd4{n\xe0\x82\xc8^\xea\xa4H=\x19J\xca\x8d\x19\xcb'
 b'\xa3w\xe5\x9bra\xe4\r\x0bR\xe4\xdc\xb9\\\xe2\x14>\xd6\xf7\x7f\x9c\xcfK\xc6'
 b'\xd5\xfc\xa0w\x88\x19\xd9\xc8\xd3\xa1\x8a\xb3\xdf\x1a\xb2\xbe\xe6\t\xecZ'
 b'\x84O%<\x06\x11\xf9\x8c\xcd~;u\xcfT\xbae\xe1\x19l\x89\xf9s\x07\x83'
 b'\xd5\x13\xcda\xeb\xcf\xf1k\xb0\x93]\xc4_\x04fbV\xca\r\xb0\x85?\xc5\xfa'
 b'J\xfc\x9f\xa40\x00\x02\x00\x17\xdf\x00G\x0c\xd2n\xd1|\x8d\xac\x81gY\xac\x80'
 b'\xcdZ\x88-(.x')

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

{'A1': {'B1': [{'C1': 6508, 'C2': -30215},
               {'C1': 29447, 'C2': -31787},
               {'C1': 5069, 'C2': 25067},
               {'C1': 53233, 'C2': 27568},
               {'C1': 37725, 'C2': -15265},
               {'C1': 1126, 'C2': 25174},
               {'C1': 51725, 'C2': -20347}],
        'B2': 0.1717008336557071,
        'B3': [{'D1': [33680191, 1797966712, 852076377],
                'D2': 40316,
                'D3': 28328,
                'D4': -3135790804987519254},
               {'D1': [2756197657, 1254788377, 3416487909],
                'D2': 39794,
                'D3': 25060,
                'D4': 939936090146036962}],
        'B4': -33,
        'B5': {'E1': 1458839687800868683,
               'E2': -4119108518030075431,
               'E3': -3975656428942714190,
               'E4': -0.44929444789886475,
               'E5': 90,
               'E6': 9533879875896736140,
               'E7': -3639406071693133211,
               'E8': 225},
        'B6': 12,
        'B7': -11666},
 'A2': 64886,
 'A3': 3459950155105706872,
 'A4': [53628, 36268, 33127, 22956, 32973, 23176, 11560, 11896]}

Пример 2

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

(b'\xfdWPNO\x00\x00\x00uAYm\x10\xa8~\xa9\x0c\x95\xd3\x00\x07\x00\xa3\xaf'
 b'\x8fp\x80&\x07\xfb\x96Y\xe0\x9f\xf9\x16\x03Td\xa4\x91\xbc5\x9d\xca\xe2\x8b"'
 b'v\x01\x94\x02\x9b\xd7\x98-\x8f\x8f{\xaa\xb8@\x9dPe\x16E\xcb\x99mi\xb6'
 b'\t\xe3\xb4UZ5\\_.\xed\xf1\x98}\xac\xf2)\x0b\x0b\x1e\xd0"\x00\xa7\xbf'
 b'T\xfc\xa2\x15\xff\x81\xaa\xfch\xce\xc4N\xc4\x12\x93\xb6^&b\x19\x87{\xe1>'
 b'K-\x0b\xc19\xf3+K\xd6\xbf\x14\x88:=zc\x1e\x85\xc0<\x85\xf2F\xa4E?\xb4\xc0'
 b"\x16\rg\x9f0\x00\x02\x00\x17D\x00G']\xcd-P4J\xd5\x95\xa8\xc7\xe1\x17Z\x99H"
 b'\x83')

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

{'A1': {'B1': [{'C1': 31713, 'C2': 15947},
               {'C1': 11531, 'C2': -16071},
               {'C1': 62251, 'C2': 19414},
               {'C1': 48916, 'C2': -30662},
               {'C1': 15738, 'C2': 25374},
               {'C1': 34240, 'C2': 15493},
               {'C1': 62022, 'C2': -23483}],
        'B2': 0.08105600192322693,
        'B3': [{'D1': [2945413248, 638057366, 1507893241],
                'D2': 5635,
                'D3': 21604,
                'D4': -6588277841399717237},
               {'D1': [578158996, 43767704, 764383099],
                'D2': 43704,
                'D3': 16541,
                'D4': 5793060984706395497}],
        'B4': 68,
        'B5': {'E1': -5329478320350677668,
               'E2': 6858680904433118450,
               'E3': 2957469807267676327,
               'E4': -0.8319798707962036,
               'E5': 21,
               'E6': 18411184752734159950,
               'E7': -4318226681221979623,
               'E8': 135},
        'B6': 39,
        'B7': 24013},
 'A2': 16729,
 'A3': 7858966611717035475,
 'A4': [11600, 13386, 54677, 43207, 57623, 23193, 18563]}

Вариант №35

Задача №12

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

Структура A:

Поле Описание
1 int8
2 Размер (uint16) и адрес (uint32) массива char
3 Структура B

Структура B:

Поле Описание
1 int16
2 int8
3 Массив адресов (uint16) структур C, размер 3
4 Адрес (uint32) структуры D
5 int64
6 uint64
7 Массив float, размер 4

Структура C:

Поле Описание
1 uint64
2 float
3 int8

Структура D:

Поле Описание
1 int64
2 int8
3 uint32
4 uint32
5 int32
6 Размер (uint32) и адрес (uint16) массива int32

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

Пример 1

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

(b'RONZ\xe2\x00\x02\x00\x00\x008\x9f\rr\x00:\x00G\x00T\x00\x00\x00i'
 b'\x98\x96\xf5\x87\xc8\t\xe2@#\xb8c\x84\x85\xac,\xc1\xbe\x81\xc6m?\x15h['
 b'??\x9a\xd7\xbf@R\xbdrb\xac\x14\xb3\xf0\xbah\x08\x9d>uQ\x9eH\xd5S\x891"t#G>'
 b'\xb0\x00\xdc\x95f\xfbdd\\\xa9\xdb\x14\xbf1\r\xafI\xf6x\n\x8a\xf0\x98\xa5'
 b'\x93R\x7f\xc6l|E\xcb\xad\xc2V\xfb\xc5-\xd2\xd9\xb6\xa7\x18\xdb'
 b'\x12\xbe\x00\x00\x00\x02\x00a')

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

{'A1': -30,
 'A2': 'rb',
 'A3': {'B1': -24819,
        'B2': 114,
        'B3': [{'C1': 12399733520558721181,
                'C2': 0.23956915736198425,
                'C3': 72},
               {'C1': 15371780797270074183,
                'C2': 0.3437565565109253,
                'C3': -107},
               {'C1': 7420635193237166868,
                'C2': -0.6916150450706482,
                'C3': 73}],
        'B4': {'D1': 5944688202396060589,
               'D2': -62,
               'D3': 1459340589,
               'D4': 3537483431,
               'D5': 417010366,
               'D6': [-159905142, -258431597]},
        'B5': -7451498569912425920,
        'B6': 2573916607871724737,
        'B7': [-0.25346699357032776,
               0.5836235880851746,
               0.7484564185142517,
               -0.7512624859809875]}}

Пример 2

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

(b'RONZ\xdb\x00\x04\x00\x00\x008\xcdG\xdd\x00<\x00I\x00V\x00\x00\x00k*\xc3\xebq'
 b'uko\xd6\xcbn[\x8b\x93\xa6\x1bI\xbfv_\\\xbfRYY>\xbeq\xd2\xbe\x92!<vdzy'
 b']\x94\xc1\xdf\x0fe\x80i\xbe\x95Q\x05\xd1\xbe\xf40\x84$E\xb4Y>H\xdf'
 b'\xb9\ru\x0eG\xf96\x1e\x83+;\xdc~{r\\!\x97t\x83-\x80i\xc8j\xce%3\xeeo\xc2+'
 b'\xc6\xb6\xb4H\xf3\x87\xcc\xea|>-%\x00\x00\x00\x02\x00c')

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

{'A1': -37,
 'A2': 'vdzy',
 'A3': {'B1': -12985,
        'B2': -35,
        'B3': [{'C1': 6743227705860653161,
                'C2': -0.2916337549686432,
                'C3': -47},
               {'C1': 13759676105626072153,
                'C2': 0.19616593420505524,
                'C3': 13},
               {'C1': 8434758287791915819,
                'C2': 0.006728944834321737,
                'C3': 114}],
        'B4': {'D1': -4005162259412258878,
               'D2': 43,
               'D3': 3333862472,
               'D4': 4085763306,
               'D5': 2084449573,
               'D6': [1545705332, -2094170007]},
        'B5': 3081565442585358294,
        'B6': 14658754492173261641,
        'B7': [-0.9623925685882568,
               -0.8216758370399475,
               0.37196213006973267,
               -0.2854098081588745]}}

Вариант №36

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x45 0x44 0x4f 0x3, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Структура B
2 int32
3 Массив uint16, размер 6
4 int16
5 uint32
6 uint32
7 Адрес (uint16) структуры E

Структура B:

Поле Описание
1 Адрес (uint32) структуры C
2 uint16
3 Массив char, размер 7
4 int8
5 Массив структур D, размер 4

Структура C:

Поле Описание
1 float
2 uint8
3 int16
4 double

Структура D:

Поле Описание
1 uint16
2 Размер (uint32) и адрес (uint32) массива int16

Структура E:

Поле Описание
1 Массив uint32, размер 4
2 double
3 double

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

Пример 1

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

(b'EDO\x03\x00\x00\x00V\x9b\x1aafwgyuo#u\xbb\x00\x00\x00\x03\x00\x00\x00e'
 b'\xb6\xb9\x00\x00\x00\x02\x00\x00\x00k,\xa1\x00\x00\x00\x04\x00\x00\x00o'
 b'\xac\xde\x00\x00\x00\x02\x00\x00\x00w`k\x13\x12\xedQ\x9c\xdd\x86z'
 b'\xfa\xe7\x8ei\xfet\xd5\x8f\x05h:4\xc3\x0e\xae1\x00{\xbe\xef\xe8i\xbe\x05'
 b'N?\xefV\xa1b5\xb4\x94\x83+M\xdeY$\x04\xb8\xb0)4G\xe2\x15#\xb6g\x90\x85'
 b'\xd9\xa4\xe3\xa13\xe7\xe0\x02\x93\xe9\x16\x19\x97&vz\tG\xa7\xbf\xe2u?\xc8'
 b'5m\xce\xbf\xd5\xe2\xe4\xa0\x18\xae$')

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

{'A1': {'B1': {'C1': -0.4685700237751007,
               'C2': 190,
               'C3': 1358,
               'C4': 0.9793250005874534},
        'B2': 39706,
        'B3': 'afwgyuo',
        'B4': 35,
        'B5': [{'D1': 30139, 'D2': [-31957, 19934, 22820]},
               {'D1': 46777, 'D2': [1208, -20439]},
               {'D1': 11425, 'D2': [13383, -7659, 9142, 26512]},
               {'D1': 44254, 'D2': [-31271, -23325]}]},
 'A2': 1617629970,
 'A3': [60753, 40157, 34426, 64231, 36457, 65140],
 'A4': -10865,
 'A5': 90716724,
 'A6': 3272519217,
 'A7': {'E1': [2704533472, 43247894, 429336182, 2047428519],
        'E2': -0.5768126402212432,
        'E3': -0.3419734538499333}}

Пример 2

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

(b'EDO\x03\x00\x00\x00V\x06\x90shspemz\xf26G\x00\x00\x00\x04\x00\x00\x00e'
 b'R\xa8\x00\x00\x00\x03\x00\x00\x00m\x939\x00\x00\x00\x04\x00\x00\x00s'
 b'6\xe3\x00\x00\x00\x03\x00\x00\x00{\x18\xdf\x9cd!\xf9\x8f\xf6\x9b8GNj\x89'
 b'\r\xd3\xbf-4\x97\xd8\x8c?\xb6R\xcd\x00\x81?8U\x9dQ\x8c\x01\xbf\xe4\xdb'
 b'I2\xc8\xcc\xd27\xc4\n\xc5\xad\xe0\xab\x19e\xc6YlA\x0f\x9bG\t\xdb\xe7'
 b'\x10V\x92\xef\xd7\xce\x02\x93\xbeOU\xb5\xf1OZ(\xb8\x9di\x0ea\x85%#\x18?\xdag'
 b'\xcd\xcf\xfe\xaa\xcc\xbf\xbc\xf6\xbeZ\x82\xd0\xa0')

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

{'A1': {'B1': {'C1': 0.7200563549995422,
               'C2': 81,
               'C3': -29695,
               'C4': -0.6517683021433192},
        'B2': 1680,
        'B3': 'shspemz',
        'B4': -14,
        'B5': [{'D1': 13895, 'D2': [14276, 2757, -21024, -21735]},
               {'D1': 21160, 'D2': [26054, 22892, 16655]},
               {'D1': 37689, 'D2': [-25785, 2523, -6384, 22162]},
               {'D1': 14051, 'D2': [-4137, -12798, -27714]}]},
 'A2': 417307748,
 'A3': [8697, 36854, 39736, 18254, 27273, 3539],
 'A4': -16595,
 'A5': 882366604,
 'A6': 1068913357,
 'A7': {'E1': [1331017201, 1331308728, 2640907873, 2233803544],
        'E2': 0.41258569061271255,
        'E3': -0.11314000806561575}}

Вариант №37

Задача №12

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

Структура A:

Поле Описание
1 uint32
2 Адрес (uint32) структуры B

Структура B:

Поле Описание
1 int16
2 float
3 Структура C
4 uint16

Структура C:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива структур D
2 uint16
3 Размер (uint32) и адрес (uint32) массива double
4 uint8
5 int16
6 Размер (uint16) и адрес (uint16) массива int8
7 int64

Структура D:

Поле Описание
1 Размер (uint16) и адрес (uint16) массива int8
2 double
3 int8
4 uint16
5 uint8
6 uint32

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

Пример 1

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

(b'WRYJ\tO\x91\xef\x00\x00\x00Mlg\n\xc0+\x96\x00\x03\x00\x0c?\xeaj\xcf\xc8\xfe'
 b';\x1c\x83Z\x7fE\xa693\xcd\x00\x03\x00\x0f\xbf\xb9\xf5\xa2\xeaM\xe80(\x8a'
 b'Zd\x0e%\xc9\x8a\xbf\xd8\x1c\x987Ej\xac\xbf\xed\x17\xfbYH1z"\x9f"\xdd\x8a?'
 b'~\xc5\x92\x00\x02\x00\x00\x00\x127\x8a\x00\x00\x00\x02\x00\x00\x00:\xe2'
 b"v\xf1\x00\x03\x00JC\xcayq\xf8\xfe'\xc0\x87\x88")

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

{'A1': 156209647,
 'A2': {'B1': -8822,
        'B2': 0.9952021837234497,
        'B3': {'C1': [{'D1': [108, 103, 10],
                       'D2': 0.8255385327955511,
                       'D3': -125,
                       'D4': 23167,
                       'D5': 69,
                       'D6': 2788766669},
                      {'D1': [-64, 43, -106],
                       'D2': -0.10140436382599272,
                       'D3': 40,
                       'D4': 35418,
                       'D5': 100,
                       'D6': 237357450}],
               'C2': 14218,
               'C3': [-0.3767452754743015, -0.9091774696149024],
               'C4': 226,
               'C5': 30449,
               'C6': [34, -97, 34],
               'C7': 4884850276252395456},
        'B4': 34696}}

Пример 2

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

(b'WRYJn\xd1r\x88\x00\x00\x00h\xb6\xc7\xc2\x8d\x08\x9a<\x00\x03\x00\x0c?'
 b'\xe3\x92\xfdx\x8d\xa7\x004\xad\xa1\x9e\xa9\xb7\x0e\xe3\x00\x04\x00\x0f?'
 b'\xef\xa5\xb9m\xa7i\x14\xa5o[}\n\x00\x93\x1c\xbf-\xd6\x13\xb7\t\x00\x00?'
 b'\xc6H\xca\x11\x873\xe8?\xe2\xae\x8b\x03YE&?\xeb/\xe7\x980\x9d\xb6?\xe4V>\t'
 b'\x1e-V\x19\xf0\xbb8\x13\xad\xb1\xbfz\x13\x02\x00\x02\x00\x00\x00\x13'
 b'\xf5U\x00\x00\x00\x05\x00\x00\x00;\x12\xda\xaa\x00\x05\x00cq;\x87'
 b'\x9eI\x01\xad\x1c\re')

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

{'A1': 1859220104,
 'A2': {'B1': -21071,
        'B2': -0.976852536201477,
        'B3': {'C1': [{'D1': [-74, -57, -62],
                       'D2': 0.6116931299740997,
                       'D3': 52,
                       'D4': 44449,
                       'D5': 158,
                       'D6': 2847346403},
                      {'D1': [-115, 8, -102, 60],
                       'D2': 0.9889800206831603,
                       'D3': -91,
                       'D4': 28507,
                       'D5': 125,
                       'D6': 167809820}],
               'C2': 62805,
               'C3': [-0.00022763243352308393,
                      0.17409635406366353,
                      0.5838065209774512,
                      0.849597737546836,
                      0.6355276277621822],
               'C4': 18,
               'C5': -9558,
               'C6': [25, -16, -69, 56, 19],
               'C7': 8159264263811214620},
        'B4': 3429}}

Вариант №38

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x54 0x47 0x45 0x5a, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

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

Структура B:

Поле Описание
1 double
2 Массив char, размер 3

Структура C:

Поле Описание
1 Структура D
2 Структура E
3 float
4 uint16
5 uint16
6 int8

Структура D:

Поле Описание
1 Массив int16, размер 3
2 uint16

Структура E:

Поле Описание
1 double
2 double
3 Размер (uint32) и адрес (uint16) массива uint64
4 int8
5 uint32

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

Пример 1

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

(b"TGEZ\xd5\xcf'\xbf\x90\x00\xfd)p)\xd9\xbfvin\xb8\xad\xf8K\n\xb9\xe5\xbft"
 b'sy(\xda\xd7\xc6\xbc}\xca?wdev\xf7_\xe6.\x8a\xef\xbfdcjX\xdf5#cF\xce?cuq\xa3'
 b'\xd5\xf9\xd4\xed\\Z\xcdh\xaag\x94\xfa\xc6\xca\x99\xbcM\xd1<z\x8cl\xc9\x8b'
 b'\xb8:\xb1A\xb1\xff\xc5?`\xd1{\xed\xcc\xaf\xe2?\x03\x00\x00\x00|\x00\xb5\xf9'
 b'\xd6F8\x9e\xf6\x12=\xecg\xc2\xc1\xfd~\x9c\x92<5\x97\xd0 \xdb\x13%S'
 b'v\xf0\xeb\x13\xce5\xf3<!\xf9me')

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

{'A1': -0.6555150151252747,
 'A2': [{'B1': -0.39315418339175157, 'B2': 'vin'},
        {'B1': -0.6788379176918431, 'B2': 'tsy'},
        {'B1': 0.20696220120562825, 'B2': 'wde'},
        {'B1': -0.9856180667409109, 'B2': 'dcj'},
        {'B1': 0.23652304858455397, 'B2': 'cuq'}],
 'A3': -93,
 'A4': 7551791505343838677,
 'A5': 4204029866,
 'A6': -1130771770,
 'A7': {'C1': {'D1': [-11955, 31292, 27788], 'D2': 35785},
        'C2': {'E1': 0.1718656130564875,
               'E2': 0.5839600218155674,
               'E3': [2364556059274812542,
                      1435505297239380955,
                      7308771691443992014],
               'E4': -75,
               'E5': 944166649},
        'C3': 0.035879723727703094,
        'C4': 26604,
        'C5': 49602,
        'C6': -3}}

Пример 2

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

(b'TGEZal\x11?\xf0\xb1\xca\x87\x11\xa3\xb5\xbfegvF=\x1d\xe3\x97\x88\xe8\xbfr'
 b'rbLQ\x16\xde\xdb\x88\xe4?cut\x0c\xed5C\xa9\x87\xef?mcd\x8eK\xfaP'
 b'\xeb\xb0\xe0\xbfzlbU2\xebp\x98SB\xa6Y\x8fs\xaf[\xa3\xd4\x9c\xacU\x00\xc6*'
 b'!B\\\xab\x00I\x1c\xf3\xed\xcd{\xbf\xe0em\x9cmf\xcf?\x03\x00\x00\x00'
 b'|\x00\xa8<\xd5\xc6\xe9\xad>\x03?\xd5\x80C\x84\xe1\xdcu\xee\xa2_\xeeA\xd6'
 b'LW3\x10*\x94\xc5EN\xcd\xd8\x96A\xde\xe1r')

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

{'A1': 0.5680599808692932,
 'A2': [{'B1': -0.08451947751263567, 'B2': 'egv'},
        {'B1': -0.7666739879440818, 'B2': 'rrb'},
        {'B1': 0.6417064035072513, 'B2': 'cut'},
        {'B1': 0.9853102028568244, 'B2': 'mcd'},
        {'B1': -0.5215965825649265, 'B2': 'zlb'}],
 'A3': 85,
 'A4': 6459923642316811058,
 'A5': 1538225039,
 'A6': -1399008093,
 'A7': {'C1': {'D1': [85, 10950, 16929], 'D2': 43868},
        'C2': {'E1': -0.006788186541387242,
               'E2': 0.24531335962346557,
               'E3': [15438883092125611484,
                      5027587467410364236,
                      8278141963368713550],
               'E4': -88,
               'E5': 3922122044},
        'C3': 0.5126751065254211,
        'C4': 32981,
        'C5': 33859,
        'C6': -31}}

Вариант №39

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x45 0x4b 0x54, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Адрес (uint32) структуры B
2 int32
3 uint64
4 float
5 Массив char, размер 2
6 Массив double, размер 6
7 Адрес (uint16) структуры D

Структура B:

Поле Описание
1 Массив структур C, размер 3
2 int16
3 uint32
4 uint16
5 uint8

Структура C:

Поле Описание
1 Массив int16, размер 8
2 int8
3 uint8

Структура D:

Поле Описание
1 uint64
2 double
3 int16

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

Пример 1

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

(b'EKT\x00\x00\x00K7:\xa3\x84\xdc\x8d\x85\x8fp\x13_\xdd\xbe\xa4}\x82bw?\xc4\xff'
 b'\xe3\x08\xc3\x80X?\xccX\x80\x97\xaf\xd1\x18?\xba\xf3!p\x0bJ\x80\xbf\xed\xe4'
 b'\xc1\x9b\xfb\xc1P?\xd8\xcf\xb1\\\xb7\xf6\xa0?\xd9\xa8\xe1\r\xa3\xb7'
 b'\xd8\x00\x8a\xa9!S\xdf\xe5\x0fR\xfe\xa3,<\xe7\x15\x12dT\x9dHX2rL\x12E\xdb'
 b'\x02Q\xa8j\x97\xa12\xf0\xc9\xb8\xef\x0f\xe7S%-|\xf1\xeeEw\xdb\xbf\xda'
 b'f\xfd\xe0!\x129s\xc4\xe7\xc3\xd8\x91\x90k\xa4\x95\x82?9BZ\x87\xbf\xcf'
 b'\x8d!\xdb\xcc4\xe8)^')

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

{'A1': {'B1': [{'C1': [-22239, 21471, -6897, 21246, -23764, 15591, 5394, 25684],
                'C2': -99,
                'C3': 72},
               {'C1': [22578, 29260, 4677, -9470, 20904, 27287, -24270, -3895],
                'C2': -72,
                'C3': 239},
               {'C1': [4071, 21285, 11644, -3602, 17783, -9281, -9626, -544],
                'C2': 33,
                'C3': 18}],
        'B2': 14707,
        'B3': 3303523288,
        'B4': 37264,
        'B5': 107},
 'A2': 926589828,
 'A3': 15892505511167483869,
 'A4': -0.32127004861831665,
 'A5': 'bw',
 'A6': [0.1640590470115082,
        0.22145087629872573,
        0.1052723787827663,
        -0.934174351363291,
        0.3876765637831827,
        0.40093256313309444],
 'A7': {'D1': 11859528401805269639, 'D2': -0.24649451477345186, 'D3': 10590}}

Пример 2

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

(b'EKT\x00\x00\x00K\xc3\xd27M};E\xee\x83\x0ej\x06\xbfh\x1b\xebnd\xbf\xce\xe1'
 b'\xe4\x04\x90\xba\x90\xbf\xe8h\xa3-S\x01\xd2\xbf\xae\xcc|C\xab\xd4'
 b'\xc0?\xe6\xbf\xf7*\xc7\xb5\x8c?\xbcHNO\xe1\xa1\xf0\xbf\xe6Kb\xea\x8b\x97'
 b'x\x00\x8a\x10\xe1\x10\xd6\xb1qP\x9e\x0c\x8e\xb0\xd9\x0cv, \xac\x10\xb1a '
 b'\x9e\x8f\xce\xa2\xb1\x02\x9f \xdeU\x07\xa0\x9a\x0cW*\xfa\xf9\xcd\x9e'
 b'\x80D\xc4Z\xfc\x85>\xed%"\xf7\x03\xc7\xaaG\x85!\tE\x0c\xd9\xfa6\x06'
 b'\xfdD\xc7\x11W\x0f\xbf\xe3g\xfc\xcc\x1f\xef~+\x91')

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

{'A1': {'B1': [{'C1': [4321, 4310, -20111, 20638, 3214, -20263, 3190, 11296],
                'C2': -84,
                'C3': 16},
               {'C1': [-20127, 8350, -28722, -23887, 671, 8414, 21767, -24422],
                'C2': 12,
                'C3': 87},
               {'C1': [11002, -1587, -24960, 17604, 23292, -31426, -4827, 8951],
                'C2': 3,
                'C3': 199}],
        'B2': -21945,
        'B3': 2233534789,
        'B4': 3289,
        'B5': 250},
 'A2': -1009633459,
 'A3': 9023883169070213638,
 'A4': -0.9066759943962097,
 'A5': 'nd',
 'A6': [-0.2412686369220478,
        -0.762773121379775,
        -0.060153849850317354,
        0.7109332881497479,
        0.11047830057362495,
        -0.6967024403536319],
 'A7': {'D1': 3893077399747778319, 'D2': -0.6064437853633391, 'D3': 11153}}

Вариант №40

Задача №12

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x46 0x43 0x41 0x52, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Адрес (uint16) структуры B
2 int32
3 int16
4 double

Структура B:

Поле Описание
1 Адрес (uint32) структуры C
2 Структура E

Структура C:

Поле Описание
1 int8
2 double
3 int64
4 uint32
5 Массив адресов (uint32) структур D, размер 2
6 int64
7 uint16
8 Размер (uint32) и адрес (uint16) массива uint8

Структура D:

Поле Описание
1 uint64
2 Массив uint8, размер 2
3 int32
4 Размер (uint16) и адрес (uint32) массива int32
5 int32

Структура E:

Поле Описание
1 float
2 Массив float, размер 4
3 int32
4 int16
5 float
6 int32

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

Пример 1

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

(b'FCAR\x00\x87\x12z&\x00!\xfe?\xdb\x0b\xe5\x0f\xf5\xbe(R\x1c"\xf3OW\xa4\xf9'
 b"\xec\xf2\xde)\xbb\xc7m'\x1f\xcci\x982\xa9\x00\x02\x00\x00\x00\x14"
 b'\xf5\xf7\xd0\xf31\xd3D1O\x0fl\xb1\x8b\xb4!jx\x940\xd9\xf1FC-Qx\x00\x02'
 b'\x00\x00\x004\xf5\x92\x9b\xe293$G\x03"\x9b?\xe2"\xdf\x14e\xbe\x1cR\xdcH\x1dL'
 b'\xdbX\x10\x82yV\xe3\x00\x00\x00\x1c\x00\x00\x00<\x0e"\xa9\xc1\x9b'
 b'\x00+\x9d\xf4\xe7\x00\x00\x00\x06\x00T\x00\x00\x00Z\xbe\x9d\x05\x10?'
 b'pn\xf4\xbf\\c\x90<\xc6\xbe\xa3\xbe\xc1\xff\xdf0\xbb\xff\xf2\xfc\xa9>\xf5\xb1'
 b'\x0b}\x0ff\xe7')

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

{'A1': {'B1': {'C1': -101,
               'C2': 0.5667567633044572,
               'C3': 5970726496667129872,
               'C4': 2188990179,
               'C5': [{'D1': 17073953408140406055,
                       'D2': [31, 204],
                       'D3': 1771582121,
                       'D4': [1377575667, 1331143929],
                       'D5': -168308493},
                      {'D1': 10066707808253128921,
                       'D2': [241, 70],
                       'D3': 1127043448,
                       'D4': [835929137, 1326410929],
                       'D5': -174941214}],
               'C6': 1018563114733415325,
               'C7': 62695,
               'C8': [57, 51, 36, 71, 3, 34]},
        'B2': {'E1': -0.30667924880981445,
               'E2': [0.9391930103302002,
                      -0.8608942031860352,
                      0.02426082454621792,
                      -0.3789052665233612],
               'E3': 817627122,
               'E4': -855,
               'E5': 0.4798663556575775,
               'E6': 2098161383}},
 'A2': 309995008,
 'A3': 8702,
 'A4': 0.42260099943720997}

Пример 2

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

(b'FCAR\x00\x86\xb44\xb3y\xa5&\xbf\xc7\xe1\xab\xbf&\xe3\xf0\xc1\xa8FqC-H%-"/b'
 b'\x8dp.\x05\xcc\x12nW\xe4\x1b\x00\x02\x00\x00\x00\x14\xbc\x94\x82\x05'
 b'R\xc1\x06jn4\xd2\xe4\xd9o\xcd\xff\xa1\x84\xe3\xf2\x83\x7f\x1eoyf\x00\x02'
 b'\x00\x00\x004\xfdPj!\xf7V\xcc\xd0=\x1f\xbf\xea\xd7\x00\xcb\x0f!\\\x1el'
 b'\x8dZ\xe7\xe6\xa1\xef\xd2\n\xe6/\x00\x00\x00\x1c\x00\x00\x00<\x7f\xe3'
 b'\xac}\xa4t\xb7aj\x92\x00\x00\x00\x05\x00T\x00\x00\x00Y?>Z\xce\xbe2\xc1V?\x1c'
 b'\xda\x01\xbfC\xe0\xe7\xbfLB\xe3V\x12u\xcb\xffc\xbe\x04\x06\xcf\xd1,~p')

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

{'A1': {'B1': {'C1': 31,
               'C2': -0.8387454954145528,
               'C3': 2192282540199813615,
               'C4': 3523929647,
               'C5': [{'D1': 3252213981241159173,
                       'D2': [204, 18],
                       'D3': 1851253787,
                       'D4': [-1045936527, 1127041061],
                       'D5': -1131118075},
                      {'D1': 15667968126455440370,
                       'D2': [131, 127],
                       'D3': 510622054,
                       'D4': [1388381802, 1848955620],
                       'D5': -45061599}],
               'C6': 9215398918160168801,
               'C7': 27282,
               'C8': [247, 86, 204, 208, 61]},
        'B2': {'E1': 0.7435730695724487,
               'E2': [-0.1745656430721283,
                      0.6127014756202698,
                      -0.7651504874229431,
                      -0.797895610332489],
               'E3': 1444050379,
               'E4': -157,
               'E5': -0.12893222272396088,
               'E6': -785613200}},
 'A2': -1271614599,
 'A3': -23258,
 'A4': -0.18657442887868525}