ИКБО-26-22

Вариант №1

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'ZXX\x93s\xb9\x1c\xe7f\xd2M\xfcs\xe8Jyb\x14\xe7\xf7!\xf0B\xd9?b\x9a\x13'
 b'\xbf\x02\x00E\x00\x00\x00\x02\x00\x91\x00\x00\x00\x88\xce\xbd\x18\x1e\\1'
 b'(q\xf0w\x9b/\xeaH#\xce+\x13\x01:(\xda!\x92\xd3\xa5\x8e\x1bR\xbc'
 b'\x0f\x03\xc0\xc7Eg\xb8V\xe3\xbej\xee\xfa\xed\x10i7\xdcq\xda\x03\x00\x00\x00'
 b')\x00\x00\x00<\\\xba\x8a_\xfc#\xe7\x08\x11\xdd\xf8\x8c\x92t\x8c'
 b'\xf5\xf5\xae\xcb:\x1a\x85\xa1\xe0\xfe \xdcY3\x04\x00\x00\x005\x00'
 b'\x00\x00x\xabL\xf5\xa2I\xb1s]\xe0\xbdf\xa7\xe3>')

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

{'A1': {'B1': 115,
        'B2': 7353,
        'B3': {'C1': 5397691680878126823,
               'C2': 'yb',
               'C3': 0.3947105724069939,
               'C4': -0.576574444770813},
        'B4': [{'D1': 21019,
                'D2': [-68, 15, 3, -64, -57],
                'D3': 17179753612179957573,
                'D4': -2706139770528928262,
                'D5': [415092360, 674323486, 2608328817],
                'D6': -1967498180,
                'D7': -929,
                'D8': 35},
               {'D1': 2279,
                'D2': [17, -35, -8, -116, -110],
                'D3': 1890046945946602612,
                'D4': 3700230603134771589,
                'D5': [591981103, 18033614, 567945274, 2393232274],
                'D6': -179524744,
                'D7': 18850,
                'D8': -79}]},
 'A2': [-0.10955324023962021, 0.4446365237236023]}

Пример 2

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

(b'ZXX\x93\xb4g^\xb8\xf5d\xff\x13q\x8f\xcckvtq(\xda\xbc\x9e\xd3\xbf\x91!\xd0'
 b'=\x02\x00=\x00\x00\x00\x02\x00\x89\x00\x00\x00n\x94\x95\x19yR\x06<@\xc4\xe1'
 b'y/\x9eOW\xdf\xdc\x7f}R\xdbp\x1eO\xf1\xdb\x85\x1d\x8es\x8c\x15\xc3>'
 b'\x9b\x83i\xa8\x0f\t\xf6\xf0\x03\x00\x00\x00)\x00\x00\x00\x7f94\xbc\xb6S;\xac'
 b'\xc5\x99\xd5{\xa09i\x94\xed\x975R\xd2\xfc\x84O\xbf\xcc\x11\r\xb3x\x02\x00'
 b'\x00\x005\x00\x00\x00\x83\xb5\xa7\xa5n\xe2b\xd8\xda\x8e>\xc7\x7fF?')

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

{'A1': {'B1': 180,
        'B2': 24167,
        'B3': {'C1': 14740124436110046648,
               'C2': 'kv',
               'C3': -0.3065635805558238,
               'C4': 0.10162652283906937},
        'B4': [{'D1': -9390,
                'D2': [112, 30, 79, -15, -37],
                'D3': 4522482143788408197,
                'D4': -1083668697481378917,
                'D5': [429233262, 1007047289, 2044838976],
                'D6': -1137428097,
                'D7': 21430,
                'D8': 59},
               {'D1': -14932,
                'D2': [-103, -43, 123, -96, 57],
                'D3': 18217713832802751593,
                'D4': 8697309675483254660,
                'D5': [1464835631, 2105531615],
                'D6': -1515735677,
                'D7': -7570,
                'D8': 98}]},
 'A2': [0.27901339530944824, 0.7753872275352478]}

Вариант №2

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'PTR\xbd\x8e\x00p\xa6\xf4\xcc\xcf\xe3\xff\xc8xsww\x03\x00\xba\x00\x00\x00'
 b'*3r\xcei\x98ei\x04\x00\x00\x00\x18\x00\x00\x00\xcfQ`\xabl]q\x03\x00\x00\x00('
 b'\x00\x00\x00\x81+\x8bL.\x89\x02\x00\x00\x007\x00\x00\x00\nl5\n\xd3\x86\x02'
 b'\x00\x00\x00E\x00\x00\x004\xe1-\xe9M\xc2\xe7\x03\x00\x00\x00S\x00'
 b'\x00\x00\x06\\\xac}\x94\xdcK\x03\x00\x00\x00b\x00\x00\x00\xa7%\x158u\x92\x07'
 b'\x03\x00\x00\x00q\x00\x00\x00\x03\xdd\xb2\xb9\x93\xc5\x02\x00'
 b'\x00\x00\x80\x00\x00\x00\xae\xe8+\xf0\xd8n\xc2\xbb\xac\x8e5\xdd\x1c\x00'
 b'\x00\x00+\x00\x00\x009\x00\x00\x00G\x00\x00\x00V\x00\x00\x00e\x00'
 b'\x00\x00t\x00\x00\x00\x82\x00\x00\x00\x91\x12\x0b\xbe\x02D\xcb;\xecGX?')

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

{'A1': {'B1': -5970,
        'B2': {'C1': {'D1': -4053, 'D2': -40},
               'C2': -15762,
               'C3': -69,
               'C4': -84,
               'C5': 142,
               'C6': 56629},
        'B3': [{'E1': 1768265833, 'E2': [42, 51, 114, -50]},
               {'E1': 1901948075, 'E2': [-49, 81, 96]},
               {'E1': 2301512843, 'E2': [-127, 43]},
               {'E1': 2261977653, 'E2': [10, 108]},
               {'E1': 3888270825, 'E2': [52, -31, 45]},
               {'E1': 1272747133, 'E2': [6, 92, -84]},
               {'E1': 127038776, 'E2': [-89, 37, 21]},
               {'E1': 3314792882, 'E2': [3, -35]}]},
 'A2': 14483545408283125360,
 'A3': 'xsww',
 'A4': [-0.13581301271915436, 0.006203175522387028, 0.8448474407196045]}

Пример 2

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

(b'PTR\xbd\x93\x00ch\x11d\x02\xb8\x9f\x92kbaa\x02\x00\xbf\x00\x00\x00'
 b'\xcd\xad9\xed\x05B\xa7\x03\x00\x00\x00\x18\x00\x00\x00\xd6\xd2\xcb\xad\x14'
 b"\x8b#\xa8\x04\x00\x00\x00'\x00\x00\x00\r\xd7\xfb\xd5\xf4\x92\xa8\xb6\x04"
 b'\x00\x00\x007\x00\x00\x00\x193\xd4lW\xab\xf7\x03\x00\x00\x00G\x00'
 b'\x00\x00\xe7PN\xef?\x85\xcdu\x04\x00\x00\x00V\x00\x00\x00\xbec\xa3\x9c^\xa8'
 b'\x02\x00\x00\x00f\x00\x00\x007\x84:P\x87\x84-\x03\x00\x00\x00t'
 b'\x00\x00\x00\x11\xba8\xdfq\x9c\x18\xf1\x04\x00\x00\x00\x83\x00\x00\x00\x90'
 b'U\x91\xbc4f0 \x80M\xca\x93\x1b\x00\x00\x00+\x00\x00\x00;\x00\x00\x00J'
 b'\x00\x00\x00Z\x00\x00\x00h\x00\x00\x00w\x00\x00\x00\x87\x00\x00\x00\x96'
 b'\xb1\x0b\xbe\x9e\xa6`?')

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

{'A1': {'B1': 21904,
        'B2': {'C1': {'D1': -17263, 'D2': 52},
               'C2': 12390,
               'C3': 32,
               'C4': -128,
               'C5': 77,
               'C6': 37834},
        'B3': [{'E1': 2806121965, 'E2': [-51, -83, 57]},
               {'E1': 2820901652, 'E2': [-42, -46, -53, -83]},
               {'E1': 3064500980, 'E2': [13, -41, -5, -43]},
               {'E1': 4155201388, 'E2': [25, 51, -44]},
               {'E1': 1976403263, 'E2': [-25, 80, 78, -17]},
               {'E1': 2824772771, 'E2': [-66, 99]},
               {'E1': 763660112, 'E2': [55, -124, 58]},
               {'E1': 4044921969, 'E2': [17, -70, 56, -33]}]},
 'A2': 10565365571242780771,
 'A3': 'kbaa',
 'A4': [-0.1364196240901947, 0.8775423765182495]}

Вариант №3

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\xe4KAHuzrkzqi\xbf\xd5\x08\xf5\xc3\xbe\x9d\\>\xab\x82\xd1\xbf'
 b'\xdb\x14\xe3\xab\x7fL\x08\xbfKB\x02\x00\x00\x00\x03\x00C\x00\x02\x00'
 b"F\xe1\xb0\xcb\xd2\xbf\xfd\x89hM\x925\xe4\xaa\xb6\xcd\xe6\xb9\t\x17M'x\x84"
 b'\xd6>!F\x17\x89\x85v~9')

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

{'A1': 'uzrkzqi',
 'A2': {'B1': [{'C1': -0.3286718761032341, 'C2': 0.33498242497444153},
               {'C1': -0.4231499838617201, 'C2': -0.7939759492874146}],
        'B2': [-124, -42, 62]},
 'A3': [558241673, -2055832007],
 'A4': -7760,
 'A5': {'D1': 3419586557,
        'D2': -8545495002570773834,
        'D3': 14836749471115454328}}

Пример 2

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

(b'\xe4KAHphewapc?\xde\x8b>\x02-\xb6\xc0\xbf\x19\xa6\xda?\xd4~Y\xb0= \x80\xbe'
 b'^\x86\x90\x00\x00\x00\x02\x00C\x00\x02\x00E ShS\x87\xa8\xd8\xd7\xc1\x1dx'
 b'u\xf2\x01\xea\x9fl\xc9\xa1.\xb2\x86\xd8^\xe0H|\xdf\xb0<\xf0\x1f')

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

{'A1': 'phewapc',
 'A2': {'B1': [{'C1': 0.4772486706996055, 'C2': -0.600202202796936},
               {'C1': 0.32021181307619173, 'C2': -0.21731019020080566}],
        'B2': [-40, 94]},
 'A3': [-532120353, -1338183649],
 'A4': 8275,
 'A5': {'D1': 1750304680,
        'D2': -2821574309205118463,
        'D3': 16906351139420549766}}

Вариант №4

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'VEREj>\xa6H7?\xc9\x02\x97\xc4\xaf\x080\x11\x1a(\xb6`\x81\xe9a\xe4\xa1\xd4'
 b'\xef\xa1\x98\x00\x00\x00E\x00\x00\x00\x05\x00\x00\x00i\xe1r\xf2w"\x12>[\xbf'
 b'K\x0c\x03\xec\xf1\xbf&#\xf2\xad|\x003\x009le\x00\x02\x00?\x00\x00\x00'
 b'\x02\x00\x00\x00C\x03<\x9bl\xa7Z^\x8e\xdd=\\\xb71>\x15\xb6\xfb|\x16*V\xc8!'
 b'j\xf4x\xfd\x89[\xd4\xb4\x83?\xe7y\xfe`\xaf\xae\xb0\xda\xa3)\nc\x90B'
 b"\x8a\x02\xc2o\x06F'\xe4\x12\xaf\xf5udSh\xda\xa3")

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

{'A1': 106,
 'A2': 0.3247697055339813,
 'A3': 0.1953916273469658,
 'A4': {'B1': 286927030, 'B2': 6954095906293667055, 'B3': 41368},
 'A5': {'C1': [{'D1': -0.7931520342826843, 'D2': 60657},
               {'D1': -0.6489859819412231, 'D2': 44412}],
        'C2': 'le',
        'C3': {'E1': 3,
               'E2': 0.01897270791232586,
               'E3': 1516146397,
               'E4': 0.05388564243912697,
               'E5': 0.1462058275938034,
               'E6': 124,
               'E7': [5674, 22216, 8554]}},
 'A6': [-830635364856843133,
        4604783277460401840,
        -2692263027640614262,
        198843406295229458,
        -5767574674021492061],
 'A7': -2201430674344100261}

Пример 2

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

(b'VEREe\xbe\x93Y\xea?\xd4\x16\x9cwE\xb6$\x0c\xc6\x9cJt\x87\xca\xb1C\xb7v'
 b'\xf3&)\x00\x00\x00E\x00\x00\x00\x04\x00\x00\x00i}\x8bqX\xe4\xf2\xb1\xa9='
 b'\x92\xf5\xae\xc2\xcd?M\xea\xa0\xf4\xa2\x003\x009iq\x00\x02\x00?\x00\x00\x00'
 b'\x02\x00\x00\x00C\xbd=\xb6\x1a\xdd1\xa7\x8es\xbd\x0f\x86\xf9\xbe\x9e'
 b'\xe4\xc4\x92fl\xed\xb1\xa3&J|S\xbf\xf6V\xb7\x8fs\xf36\xe9*%\xfa%\xedo\xc0'
 b'8\x16\xe8S*\xa6%\xd8\xa6\x98g\xfb\x01')

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

{'A1': 101,
 'A2': -0.28779536485671997,
 'A3': 0.31388007781683513,
 'A4': {'B1': 214342730, 'B2': 8396902892949698291, 'B3': 9769},
 'A5': {'C1': [{'D1': 0.07175765931606293, 'D2': 49869},
               {'D1': 0.8043613433837891, 'D2': 62626}],
        'C2': 'iq',
        'C3': {'E1': 189,
               'E2': 0.08891842514276505,
               'E3': 833064563,
               'E4': -0.035040829330682755,
               'E5': -0.310339093208313,
               'E6': 146,
               'E7': [26220, -4687, -23770]}},
 'A6': [5367256939855525775,
        8355082108764813861,
        -1337639217170722006,
        -6474530679242097919],
 'A7': 9046448903115944361}

Вариант №5

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'FEDWU\x00\x00\x00\x1ejocoz\x00\x02\x00\x00\x00\x7f\x00\x8fbu\xe8Z\x82\n'
 b"\xa4 \xac\xb2\xe5\xc0Vvhc\xc0\x06!\xae\x17\xe2\xb3'o\xa6\x1b\x07h\x08\xc7Vj5"
 b'\x0c\xc6\xcc\xf0\x8a\xba\xef\xbam\x7f\xe1\x05\x06j\xc3z\xffw\xd4S\x98s\xd2g'
 b'\x9e\x9e\x87\x93\x00\x00\x001q,hY\xe4R\xd0F\xeb\x02\x1eOM\x93\xe9X'
 b"\x00\xe8_\xb1\x91w\x19\x98\xa8\xb4>uC\xfc\xfd\x01'\xe3*\x00\x00\x00X\x00"
 b'\x00\x00>\x00\x00\x00e\x8a\xad\xdc>\x90\x08@H\x00\x00\x00\x02\x00'
 b'\x00\x00\x87i?\xbb\xb0bG\x93\xf1\x90\xa7\x10/jU\xd8N\xaf>\xdb\x9f\x1b'
 b'\xbfE\xa3\x92')

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

{'A1': {'B1': 12444261334625183843,
        'B2': -16378,
        'B3': 565057506,
        'B4': 3005706150,
        'B5': 27},
 'A2': 'jocoz',
 'A3': [{'C1': -272994945,
         'C2': [3775202922, 3279617911, 3562248307],
         'C3': -764961122,
         'C4': 34707,
         'C5': {'D1': 7,
                'D2': 26632,
                'D3': -4082959236084609808,
                'D4': -30022}},
        {'C1': -1813424128,
         'C2': [3898585489, 1998166184, 3023992131],
         'C3': -50527961,
         'C4': 58154,
         'C5': {'D1': 113,
                'D2': 11368,
                'D3': 6477393218562097694,
                'D4': 20301}}],
 'A4': {'E1': [-1968317378, -1878507448],
        'E2': 105,
        'E3': 0.10816015479571761,
        'E4': -6408570135994937681,
        'E5': [0.4289482533931732, -0.7720271348953247]},
 'A5': 7094832263418520608}

Пример 2

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

(b'FEDWU\x00\x00\x00\x1elquhz\x00\x02\x00\x00\x00\x7f\x00\x8f\x7f\xdeC\x08\xabb'
 b'\x19uq\x1d\xf4g\x92c\x87\xf3`\xad\xe0A\x8d~\xb9u\xc8\x91%\xb1\x91\x1b\x81lc+'
 b'\x17\xa7\xac<\xd08\x167\x8a\xc3;\x1b\xa4\xad\x02R)\xeb\xabF%\xfe\xa6<'
 b'\xd4\x94\x98u\x00\x00\x001+\xb3z\xcb\xfec^}a5\x9f\xca\xd1\x84\xe9@b\xc7\xcfL'
 b'6sy\xdd\xec\xe1\xb9\x07\xd4\xf2\xce\xe1P\xeb\xa4\x00\x00\x00X\x00'
 b'\x00\x00>\x00\x00\x00e\x98\xa7\x10\x86}K\xd7\x0e\x00\x00\x00\x02\x00'
 b'\x00\x00\x87}\xbf\xeeW\x06GDn\xa6W\xcc\x14l\xe6\xe2[\x7f\xbfG^\xb5>o\xe8h')

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

{'A1': {'B1': 8150939626285271027,
        'B2': 24749,
        'B3': -532574850,
        'B4': 3111504017,
        'B5': 37},
 'A2': 'lquhz',
 'A3': [{'C1': 372738755,
         'C2': [991667373, 38939115, 2873501182],
         'C3': -1505962860,
         'C4': 39029,
         'C5': {'D1': -79,
                'D2': 37147,
                'D3': -9120806108600488900,
                'D4': -12232}},
        {'C1': -2065088414,
         'C2': [3352251446, 1937366508, 3786999764],
         'C3': -221322928,
         'C4': 60324,
         'C5': {'D1': 43,
                'D2': 45946,
                'D3': -3747448582444075617,
                'D4': -13615}}],
 'A4': {'E1': [-1733881722, 2102122254],
        'E2': 125,
        'E3': -0.9481231109561647,
        'E4': 6326454034511321983,
        'E5': [-0.7787888646125793, 0.23428499698638916]},
 'A5': 9213875592160745845}

Вариант №6

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

Структура G:

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

Структура H:

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

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

Пример 1

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

(b'THLQ}\x1c\x7f\xd8\xbc\x81\xadnWZ\xe5>\x9d\xcb\xd7f\x91\xb2\x11fQ~\xf1npaqp'
 b'veeN\xf2\xaf\x8c\x89\xbd\xec\xd9mR7\x00\x00\x00\x03\x00A\x00_\x00\x03'
 b'\x00\x92~\x86\xa1\x99\xb8?\xf0\xa3\xf7\x1cJg\x19\x1bS\x13m=@;\xa7\xf9'
 b"\x00\xa3G\xa2'j>\x86y$\xbf7I-\x90\x14\xdf\xfbq/E\xe9?\xe0\x1f\x02\x00S"
 b'\x00\x00\x00\x1c\x00\x06\xbfp\x99\xdb\xbd\xb0\x01Pu\x03<\xc3\xbf5em\xa3\x9e'
 b'\x0eh\xc3>$\tMgp\xe8\x04\x00\x00\x00[\x00\x07)\xa8\xab\xfc\xc8\x84\x14')

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

{'A1': 7975173163229060221,
 'A2': 0.44795486330986023,
 'A3': {'B1': 7354856004038151069, 'B2': 81},
 'A4': 61822,
 'A5': {'C1': 'npaqpvee', 'C2': 15703134399202587214, 'C3': 21101},
 'A6': {'D1': 3, 'D2': 0.09609422238879262, 'D3': -16},
 'A7': [{'E1': 1243412387, 'E2': 6503},
        {'E1': 1829983003, 'E2': 16445},
        {'E1': 16361275, 'E2': 18339}],
 'A8': {'F1': 0.789695475220443,
        'F2': 8160,
        'F3': {'G1': [0.22866681218147278, -0.6424793004989624],
               'G2': -0.5234391689300537,
               'G3': -0.10722625255584717,
               'G4': -0.1502689669432704,
               'G5': 53},
        'F4': -1633456795,
        'F5': 0.3816532492637634,
        'F6': {'H1': 36, 'H2': 9, 'H3': [26445, -6032]},
        'F7': [55, 73, 45, 144],
        'F8': 1478527565221603591}}

Пример 2

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

(b"THLQ[\x06\x13\xe7\xdd\xe9\xc9s\xdfAs>2O\x04\x1c\x19\x16\x98\x1f~'sqkmygeya/"
 b'\xcc\xa7|\x9c%\xbd\x8c<E7\x00\x00\x00\x03\x00A\x00_\x00\xbfB\xb6+\xf4'
 b'8\xa6\xe7\xbf<\xef\x9aj\x91\xfa6$\xd6\x1eD Mk\xa4\x15[)\x9an\xf0\xc7>Q'
 b"r\xb5\xbe:\xc1_6\xd8\x8a'\xc3\x12\xf4\xd0?\xe4\xcd\x02\x00S\x00\x00\x00~"
 b'f\xc4\xbe3\xf3\xfe\xbdX\xe0\x98\xd5\xa0O\xe3\xbf\x8eM\xb2\xcc\xb9u\xffj>'
 b'\x97\x03\x11\xe7\xc0\xef\x04\x00\x00\x00[\x00\x00}\x1e\x9e\xac\xfc\xc7\xd5')

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

{'A1': 8343456923954382427,
 'A2': 0.23755596578121185,
 'A3': {'B1': 2276593908735823666, 'B2': 126},
 'A4': 29479,
 'A5': {'C1': 'qkmygeya', 'C2': 10141303289944722479, 'C3': 17724},
 'A6': {'D1': 191, 'D2': -0.739040829559322, 'D3': 60},
 'A7': [{'E1': -1855284497, 'E2': 14074},
        {'E1': 1142871588, 'E2': 19744},
        {'E1': 1528145003, 'E2': -26071}],
 'A8': {'F1': 0.26489705141118014,
        'F2': -12828,
        'F3': {'G1': [0.39050620794296265, -0.3543877899646759],
               'G2': -0.38359445333480835,
               'G3': -0.12448730319738388,
               'G4': -0.6034702464885511,
               'G5': 142},
        'F4': -1177767347,
        'F5': 0.22949011623859406,
        'F6': {'H1': -105, 'H2': 3, 'H3': [-6383, -4160]},
        'F7': [58, 193, 95, 54],
        'F8': -3042185204948108032}}

Вариант №7

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'GBWZ\\\xdd\x94\x16\r\xf4\xa2\x02;\xd3\xcd\xbcwiL\x9b\xb8\x00\x06\x00'
 b'\x00\x00-\x003\x94F\xb1\xbdF\xf4m:}\xc7|\x06\x00\x00\x00Nuwechf"i\xbb\x03m'
 b'm\x85\x00\x02\x00\x00\x006\xba*!\xda#I\x00\x02\x00\x00\x00B\xc6\xc6\x00:'
 b'\x00F\xbf\xd7M\x1f\x18\xeb\xd9\xe8\xf4\xb9\xba\xa1-\xbeH\x03/\xa5\xc7')

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

{'A1': 3717469709,
 'A2': 17627654347461344375,
 'A3': 1766628280,
 'A4': 'uwechf',
 'A5': {'B1': 34, 'B2': 27067},
 'A6': -7762321481229112006,
 'A7': 2110225414,
 'A8': {'C1': [{'D1': [877, 28037], 'D2': 47658},
               {'D1': [8666, 9033], 'D2': 50886}],
        'C2': -0.3640821212169656,
        'C3': {'E1': [62649, 47777],
               'E2': 45,
               'E3': -0.19532464444637299,
               'E4': [-91, -57]}}}

Пример 2

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

(b'GBWZ\\E"\xee\x89}\xfa]p\x0c\xba\x0c\xae\xfd\xcdlo\x00\x02\x00\x00\x00-\x00'
 b'/\xc0h\xa7t\xdbh#\xfe\x0b\xfay\\\x00\x00\x00Vsz\x82\xb3\x94q\x10\xa8F\xb6e'
 b'\xd5\x16\xe5\r\x00\x05\x00\x00\x002\x10\xd7\x10\x84\x180\x94\xden\xf5'
 b'\x89\x07\x00\x05\x00\x00\x00D\x98T\x00<\x00N\xbf\xef\xf9Q%\xaa\x99\x98*S'
 b'\xd722\xbd%\x8d\x84?\xf5')

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

{'A1': 1159917193,
 'A2': 9077670734749895854,
 'A3': -36869009,
 'A4': 'sz',
 'A5': {'B1': -126, 'B2': -19564},
 'A6': -4582228500510399490,
 'A7': 200964444,
 'A8': {'C1': [{'D1': [28944, 43078, 46693, 54550, 58637], 'D2': 4311},
               {'D1': [4228, 6192, 38110, 28405, 35079], 'D2': 38996}],
        'C2': -0.9991842017814632,
        'C3': {'E1': [10835, 55090],
               'E2': 50,
               'E3': -0.04041816294193268,
               'E4': [63, -11]}}}

Вариант №8

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'WTT/\xb5\xf0wl\xdep\x890\xb2*\x00\x00\x00\x97]\x84\xf5D5+\x05X\xb5\xc4'
 b'\xd9a?\x8c$\x11\xdd\xc3\xecLtqnM\xf5m\xafJ\xae\xf8\xdbKG\x0f\x11\x01\x7f}'
 b'|\xb3\x11\xae\xa1\x00\x00\x00\x05\x00\x00\x00\x15\xd8$\xfa\xdc\xa9+\x8f'
 b'W\xe8\xab\xda\x8c>D3\xdf\xb3\x00\x00\x00=\x1c\xe5\xb9Hf\x92\x8cI\x04\x8a'
 b"'_a\xbc%0\xbf\xed\xf1ykv\xa6j\x8a`\x84\xb2\xdc\xf2\x06\x862\x00\x00\x00Q("
 b'o\xcf\xb6\xbe\xfae\xde\xb0\xa9=C\xc4I\xe4\xf8}\xe0\xa3|\x19ChX\x00\x00\x00r3'
 b'\xaa\xcd\xb3\xdb\xd8\xa9x\xa8\xd9\x00\x00\x00\x02\x00\x00\x00\x7fE\xa5j'
 b'\xb1\xd5t\x00\x00\x00\x02\x00\x00\x00\x87\x8c\x13z\x88\xfd\xd8\x00\x00\x00'
 b'\x02\x00\x00\x00\x8f')

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

{'A1': 46576,
 'A2': 8605497562917548586,
 'A3': {'B1': {'C1': -118,
               'C2': 6954880386589951538,
               'C3': {'D1': 62,
                      'D2': 68,
                      'D3': 51,
                      'D4': 57267,
                      'D5': {'E1': [4914881870307902681,
                                    7007473631758238700,
                                    5509152962749230511,
                                    5381512225498795793,
                                    107942890613878433],
                             'E2': -2871894836717580457,
                             'E3': -391390580},
                      'D6': 2082274123338386505,
                      'D7': 327117213552878896,
                      'D8': -0.9357268427749663}},
        'B2': 866831795,
        'B3': [{'F1': 56280, 'F2': 2843257049, 'F3': [678416310, 3204081118]},
               {'F1': 17829, 'F2': 1790039412, 'F3': [2963881283, 3293177080]},
               {'F1': 35859, 'F2': 2055798232, 'F3': [2111873916, 423848024]}]},
 'A4': [93, -124],
 'A5': 245}

Пример 2

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

(b'WTT/\x03\xa0\x1c5\xf2P\x11cj\x06\x00\x00\x00\x97VQ3\xb5\'"\x1e\xa0\xb0\x12'
 b'E\xde\x96BY\x05e\xda\\\x82\xf6\xf4\x9aZ\xf3\xaa1\xc9\xd2}\x05S\x86\x94'
 b'g\xe2-\xa3\xb3x\xf4\x03\xad\x00\x00\x00\x05\x00\x00\x00\x15\x9b\xcb\xeb'
 b'\x86Du\xd4-\x06\xb6=\xec\x99\xab\x9b\x95\xeb\x00\x00\x00=\x02\xfc\x7fnJ\xf7'
 b'a\x97\xf5\xfb\x0b\xeb\x08\xb5\xee\xde?\xe5\xc2\x13\xa2Y*F\xf2\xcf'
 b'\xca\xb8z\xd4\xb2\xc6\xfa\x00\x00\x00Q\xcaKS\xb4\x14\xfck\x8f\xf0'
 b'\x8e?\x10\xc4\xef\x98\x92\xd3#\xe5V_4\xb6;\x00\x00\x00r\x0f\xde\x8c>n'
 b'i\xa5\xb4m\x98\x00\x00\x00\x02\x00\x00\x00\x7ft;D(\xdbN\x00\x00\x00\x02\x00'
 b'\x00\x00\x87\xe0e\xa2\xd9\xe6\x1d\x00\x00\x00\x02\x00\x00\x00\x8f')

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

{'A1': 928,
 'A2': 2032797232530680326,
 'A3': {'B1': {'C1': -14,
               'C2': -3473761324868909318,
               'C3': {'D1': 153,
                      'D2': -85,
                      'D3': 155,
                      'D4': 38379,
                      'D5': {'E1': [-5393304513812622779,
                                    -2407664000672867748,
                                    -9009745060720039375,
                                    -3903920465147161497,
                                    -2148881455962127443],
                             'E2': -7220418615651740627,
                             'E3': 112606700},
                      'D6': 215186993887797655,
                      'D7': 17724773862538079966,
                      'D8': 0.6799410029282817}},
        'B2': 266243134,
        'B3': [{'F1': 28265, 'F2': 2780065176, 'F3': [3393934260, 352086927]},
               {'F1': 29755, 'F2': 1143528270, 'F3': [4035854096, 3304036498]},
               {'F1': 57445,
                'F2': 2732189213,
                'F3': [3542345046, 1597290043]}]},
 'A4': [86, 81],
 'A5': 51}

Вариант №9

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'ITG\xbd\x11\xa5N\x00\x00\x00w\x00\x00\x00\xb2\r\xcb\xa0\xdb\xc9]\xca\x91>'
 b'vq\xe3\x82\xd9q\x96\xd2\xc2\xad%\xd1|\x0f\x9f\xd3\x1f\x80l\xef'
 b'\xcd\xf1\x17\xa5\x0e\xb0\x04?\xdcL\xf0X\xc8\xeb\xb8\x92F\x8d\x00\xadw\x9f<?'
 b"\xd3W[\xa8^K\x18\x00\x00\x00\xc3\xa7'\xf8)\x00\x00\x00\x02\x00\x00\x00O,"
 b'\xcc\x96K\x9c\xec\xc6\xde\xa8yl~"\x9c\xfc\xca\x00\x8dF\xcf\xbfYh\x00s'
 b'\xde\xdb\xdf\x8d\x00\x00\x00S\xdc\x88\xee\xad\x9c\xae\x00\x04\x00\x00\x00s'
 b'V\x1a\xdd\xd5\x00\x00\x00\x02\x00\x00\x00\x88E\xf4\xc2\xd2\xd1W\xa5\xb4'
 b'\xdc\xcc\x98dXv\xbby\x9d\xc7\x85\xb0\xbf\n5>x\xb0\xffR&,~\x00'
 b'\x00\x00\x8c\x1ft/\xe0\xaa\x18\x00\x06\x00\x00\x00\xac\xa3\x84*\xc0\xb0')

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

{'A1': -0.03555803745985031,
 'A2': [{'B1': 141,
         'B2': {'C1': [42791, 63529],
                'C2': 3228120284417279710,
                'C3': -6306890514153276214,
                'C4': 9258703,
                'C5': -0.8492431640625},
         'B3': 220,
         'B4': 136,
         'B5': 4004355246,
         'B6': [115, 222, 219, 223]},
        {'B1': 126,
         'B2': {'C1': [22042, 56789],
                'C2': 5040868093645530548,
                'C3': -2536484933368104071,
                'C4': 2647098800,
                'C5': -0.5398749113082886},
         'B3': 31,
         'B4': 116,
         'B5': 803252760,
         'B6': [120, 176, 255, 82, 38, 44]}],
 'A3': {'D1': 994065008601975441,
        'D2': 0.24066881835460663,
        'D3': [9428692187471850789, 15094957230155333740, 17279732429146206212],
        'D4': 0.44219597502131647,
        'D5': 10540267011957038908},
 'A4': 0.30220691148967793,
 'A5': {'E1': 163, 'E2': -2077572944}}

Пример 2

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

(b'ITG\xbfa\xa6\xcb\x00\x00\x00w\x00\x00\x00\xae\xa2}\xa4\xb5\xe1\xe6hT\xbf'
 b',gG\x8dzClw\x1e5I\xc2\xa8\x0b\x92\xf2T\xf2o3\xdcm\x86K\x0fp?\xbf'
 b'\xda\x91\x7f\xa1=\x8f8\xe9\xf3\xbb\xd7|?\xcf\x15?\xea\x87$nN<>\x00'
 b'\x00\x00\xbf\xcc)\xf8\xed\x00\x00\x00\x02\x00\x00\x00O\\9D\xc2\x1b'
 b'^\\\xc5\xf2]\xb2\x86\xf7\x14\x81z\xd4\xbc\xca\xd2\xbfA,m\xda\x1a\xf1\x1c5'
 b'\x00\x00\x00S\x11K2J\x0e\xc7\x00\x04\x00\x00\x00s\xf5F\x93q\x00\x00\x00\x02'
 b'\x00\x00\x00\x88\xc2v\x90\x03\x99y\xcd@\x16\xf5\xcf\xe9\xcd\x0eY)V\xb5\xc5='
 b'\xbfT\xdar\x98\xf3o\x00\x00\x00\x8cK4\x19TIt\x00\x02\x00\x00\x00\xac\r'
 b'`\xd8\xb7\x17')

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

{'A1': -0.8814513087272644,
 'A2': [{'B1': 53,
         'B2': {'C1': [52265, 63725],
                'C2': 6645418325635390661,
                'C3': -982432850956222086,
                'C4': 3569142482,
                'C5': -0.7545841336250305},
         'B3': 17,
         'B4': 75,
         'B5': 843714247,
         'B6': [218, 26, 241, 28]},
        {'B1': 111,
         'B2': {'C1': [62790, 37745],
                'C2': -4434198437965476544,
                'C3': 1654457041203124521,
                'C4': 1454753085,
                'C5': -0.8314582109451294},
         'B3': 75,
         'B4': 52,
         'B5': 424954228,
         'B6': [152, 243]}],
 'A3': {'D1': 11708695707319167060,
        'D2': -0.6734508872032166,
        'D3': [10194534839640536393, 14026473765204193903, 3736982214363017279],
        'D4': -0.4151305269826824,
        'D5': 16858024364354817813},
 'A4': 0.8289968637853986,
 'A5': {'E1': 13, 'E2': 1624815383}}

Вариант №10

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'\x82XTW\xd3:o\xd6"\x03\xb7}\x90\xd8\x97\x86\x9d\x9b\xa0\x13\x00\x02\x00\x00'
 b'\x00<\xe67\x00\x04\x00\x00\x00u\x8f\x93V6\xfc\x896\xa4\xf6:\xcab\xea\x15'
 b'\x1d\x8d\x00\x00\x00\x8d\xc9@\x17G\xc3\xb3dn\xda\x08\x1d\xd4\xa7\xa4'
 b'\x07\x00\x03\x00\x00\x00>\xe5\xa1\xbe\x93\xd7\x12\xecO\x00\x03\x00\x00\x00'
 b'L\xd2D\xdaZ\x0e\xb1\x1dZ\x00\x03\x00\x00\x00Z?{\x03\x8b\x80gk\x00\x02'
 b'\x00\x00\x00h\xcd\x00A\x00O\x00]\x00j\x17\x06\xd7c?\x01\xf2Y?CuN\xbfo\xaa'
 b'\xc5TN\xd9\x19\x12\xd2MO\xf7\xc55%\x00\x00\x00\x02\x00}\x00\x00\x00\x03\x00'
 b'\x81\x8b\x9e?\xd5\xf2\xcd-\xef\xe0\xf4\x7f%9\xa2\xbf\xe9N\x89\x16\xf9\xd2&')

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

{'A1': {'B1': 54074,
        'B2': 111,
        'B3': 15429899359945283735,
        'B4': -122,
        'B5': -1650745325,
        'B6': 'dn',
        'B7': 58935},
 'A2': {'C1': [{'D1': 3567756295, 'D2': [-38, 8, 29], 'D3': -27},
               {'D1': 3608341583, 'D2': [-95, -66, -109], 'D3': -46},
               {'D1': 246488410, 'D2': [68, -38, 90], 'D3': 63},
               {'D1': 2340448107, 'D2': [123, 3], 'D3': -51}],
        'C2': 10345707563165234852},
 'A3': 4131048034,
 'A4': 3927252365,
 'A5': {'E1': 6075031649082559823,
        'E2': 4156896549,
        'E3': [5894, -10397],
        'E4': [0.50760418176651, 0.763508677482605, -0.9361994862556458],
        'E5': -29794,
        'E6': 0.3429444264034054,
        'E7': 2133146018,
        'E8': -0.7908368538615533},
 'A6': 51520,
 'A7': 390579123}

Пример 2

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

(b'\x82XTW5\x9bz\xaf\x8aE\xa7`\x93\x86\xddG\x97\xc6\x11>\x00\x02\x00\x00'
 b'\x00<\xf0\x9d\x00\x04\x00\x00\x00tN\xb0J2F\x8f\xe0\xc6\x9f\x94U\xf2\x01c'
 b'\xdf\xd9\x00\x00\x00\x98e%?\x82\xdc\xfapy\x14f\x9bg{\xf1!\x00\x03\x00'
 b'\x00\x00>\xb5\x03\xac.>\xc3\xb7\x00\x02\x00\x00\x00LCgP\xf2\x19\xcd_\xe3'
 b"\x00\x03\x00\x00\x00Y\xfc<\xe7\xab'\xc3\xb3\x00\x02\x00\x00\x00gS\x00A\x00N"
 b"\x00\\\x00it\t\x8dD?\x02\xb7\x7f?Yw\xdf?\x1c9\xd3=\xd0'\xd9>\xaf\x00\x08"
 b'=\x83\x1d"9}\x94tji\x94\xa2\xbb\x185\xbb\x00\x00\x00\x02\x00|\x00\x00'
 b'\x00\x06\x00\x80\xc0N\xbf\xccl\x10\xe0\x8e\x15\x10\xcf\xe3{\x03\xbf\xdb'
 b'~3\xf7\xe8\xacD')

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

{'A1': {'B1': 13723,
        'B2': 122,
        'B3': 12648999088605595357,
        'B4': 71,
        'B5': -1748627138,
        'B6': 'py',
        'B7': 61597},
 'A2': {'C1': [{'D1': 1736175905, 'D2': [20, 102, -101], 'D3': -75},
               {'D1': 775865271, 'D2': [3, -84], 'D3': 67},
               {'D1': 432889827, 'D2': [103, 80, -14], 'D3': -4},
               {'D1': 2871509939, 'D2': [60, -25], 'D3': 83}],
        'C2': 5670113510652108998},
 'A3': 2677298674,
 'A4': 23322585,
 'A5': {'E1': 4142630459973145762,
        'E2': 3138926011,
        'E3': [29705, -29372],
        'E4': [0.510612428188324,
               0.8494853377342224,
               0.6102573275566101,
               0.10163850337266922,
               0.3417971134185791,
               0.06402041018009186],
        'E5': -16306,
        'E6': -0.22204791035270732,
        'E7': 3487791875,
        'E8': -0.42957781991816923},
 'A6': 25893,
 'A7': 1065540858}

Вариант №11

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'\xcdNWRN\x0b\x02rD\xf7\xa1z\xf0?\xdc\xbc\xfe_\x13mp\xad\xa3\x8d0j]\x10'
 b'LK\\\x86\x97\x80\x84#\xcf\xa6\xa1\xb3\x0c\xef?\xd2\x18*r\x95\x8c\xaf\xcd\x90'
 b'\x97\x86\x00c\xfb\x0c\x15]\x18\x01\xcc\xd5r\xe7\xeb\xf6"k\x9cE3\x80\xa0\x03'
 b'\x00\x90\x00\x00\x00\x02\x00\x00\x00\x93\x00\x00\x00\x18\x7f8\xd4wj\xac'
 b'\x8a\xa0\xef\xb7\x19>\xc2\xabe\xff\xa7w\x08\xe3#s\xbd\xa7\xe7x\xb1i\xa9a'
 b'\rqN\x07\x00\x00\x00[\x00\xa4oU\x85\xda@\xd2\x82\xd5\x18m\xa2nb\x00'
 b'\xcb\xb3\x91W\xc7W>\xaa\x7f<?')

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

{'A1': {'B1': [{'C1': 17328340599638721035, 'C2': -21177281},
               {'C1': 3498632450847609695, 'C2': 1276140906},
               {'C1': 14925919277868801099, 'C2': 213098918},
               {'C1': 10130128461970423791, 'C2': -1752117841}],
        'B2': {'D1': 7972054243827962432,
               'D2': {'E1': 0.1501157134771347,
                      'E2': 16359457209851423682,
                      'E3': 35,
                      'E4': -408437389,
                      'E5': 5652313720431948152,
                      'E6': [56, 212, 119, 106, 172, 138, 160],
                      'E7': -2057998428,
                      'E8': -38}},
        'B3': 353172323,
        'B4': -1448062492600100771,
        'B5': 11565300217157460726,
        'B6': [-53, -77, -111],
        'B7': [0.21072135865688324, 0.7363229990005493]},
 'A2': 32536}

Пример 2

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

(b'\xcdNWRNT\xcfd\r\x84\xdaQ\xd7\xc8\xd3\x99=qu$^\xd3UNW\x8a\xbf\xdeQ\x1c\xb2-'
 b'VP\x8d\x18;,\x07>F\xcc\x15\xac~\x1b\xbe)\x1a}\xf44d\x85\x00\xfb\x9e\xe8L\xdd'
 b'\x86\xe1\x0f%\x88\x03g\xd6c\x19\x97d\xfe\x10\xba\x05\x00\x8f\x00\x00'
 b'\x00\x02\x00\x00\x00\x94\x00\x00\x00\xc7\x1dA\x05P\x97\x1b1i\xca\xc0'
 b'>\xa1C\x96O\xe5\xf2\xa1S\xb5\xbe\xa29\xa9\xc9\r\xfc\xc5g\xf7\xec\x01\x06\x00'
 b'\x00\x00[\x00\xb2{\xcd\xd8\x05\x1e?\xdbM\x9dv\xc1\xaba\x00\xc3\xda\xb7V\x88'
 b'\xbcpg\xbf\xfd\xbe\xae>')

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

{'A1': {'B1': [{'C1': 15515422451963318100, 'C2': 1033491400},
               {'C1': 6291060095789069681, 'C2': 1373552522},
               {'C1': 4258308823861539356, 'C2': 1178470188},
               {'C1': 1885246944329864652, 'C2': 1681192061}],
        'B2': {'D1': -6070440404730560738,
               'D2': {'E1': 0.3765442669391632,
                      'E2': 6026364843095114657,
                      'E3': 181,
                      'E4': -1455840578,
                      'E5': 138757713616965065,
                      'E6': [65, 5, 80, 151, 27, 49],
                      'E7': -657622094,
                      'E8': 5}},
        'B3': 1290313467,
        'B4': 7422926303598315229,
        'B5': 13407495798667174870,
        'B6': [-61, -38, -73, 86, -120],
        'B7': [-0.9040639400482178, 0.3413008749485016]},
 'A2': 7623}

Вариант №12

Задача №12

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

Структура A:

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

Структура B:

Поле Описание
1 Структура C
2 Адрес (uint16) структуры E
3 Адрес (uint32) структуры F
4 double
5 Адрес (uint32) структуры G

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

Структура G:

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

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

Пример 1

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

(b'PWHV\xbf\xe6\xe1r\x1a`\xce\xd8\x00\x00\x00l\xa1"x\xa1m\x0eoAV\xcd\x8fV'
 b'\x14\xd4\xc0)2A\xc9\xf4\x9e\xf0uZ$_\x891m\xb8\xc3\xf2\xf4\xef\xe3\xfc'
 b'\xef\xe68\x17-k\xdc\xa2\x90\xc6\xfa\xce\xa6V*\xf8\x0e+\xcbF\xc9z\xa8\xdb'
 b'2^e\xf1\x93\x10\xdd\x1d\xed\x1e\x01\xf9.\xe9-\x0c\t\xd6O68\x11\xe6U'
 b'nH\x00\x07\x00\x00\x00<\x00\x08\x00\x10\xf8\x9ew\x00\x03\x00\x18\\'
 b'\x92\xfb\x00\x08\x00\x1b\x16#\xbc\x00\x05\x00#I\x1c\xc3\x83\xb4\xcc\x87'
 b"\xe6'\x0c\x19\xb8\xdc\xb1\x13\xd7\xba\x19\x15\x0fy\xb0\x1c{\xd2(\xdc"
 b'\xc4\x0b\xbc;\xbfV\x16\xe9\x00(\x00\x00\x002\xbf\xd3DG\x8b\xd8\x05D\x00\x00'
 b'\x00J')

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

{'A1': -0.7150202288816798,
 'A2': {'B1': {'C1': [{'D1': [-95, 34, 120, -95, 109, 14, 111, 65],
                       'D2': -8,
                       'D3': 40567},
                      {'D1': [86, -51, -113], 'D2': 92, 'D3': 37627},
                      {'D1': [86, 20, -44, -64, 41, 50, 65, -55],
                       'D2': 22,
                       'D3': 9148},
                      {'D1': [-12, -98, -16, 117, 90], 'D2': 73, 'D3': 7363}],
               'C2': [-8956308874879103975,
                      -5126027577072674539,
                      1115116019133851868,
                      -4320152452732676375]},
        'B2': {'E1': 2620964353540146162, 'E2': -2833},
        'B3': {'F1': 58364, 'F2': 17286565891905674402},
        'B4': -0.30104244858383233,
        'B5': {'G1': [2832937566,
                      1710330640,
                      3709725982,
                      33107689,
                      755763670,
                      1328953361,
                      3864358472],
               'G2': [37062, 64206, 42582, 11000, 3627, 52038, 51578]}}}

Пример 2

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

(b'PWHV\xbf\xb0&\xccz\x8b\x92\xa0\x00\x00\x00g,#\x81\xcc\xb8zc\x98'
 b'\x13\x1a\x9c\xcd>*R\x1d\xce4y\x9e\xc9\x9c\xa9\x19\xa7\x7f\x90\x99\xe8\xe7/L'
 b'?L\xb1\x1du\xb0\x947\tV\xed\x10N2\xb2\xe2\xc5\xd97)^\xe1W\r_[\xf3\xc1'
 b'\xe2z[\xfd5\xb2\xff\x9eb\xc8\x9dq\xe8\x94`\xe9\na\x171\xfd\x00\x07\x00'
 b'\x00\x007\x00\x02\x00\x10a\xaa\xa4\x00\x08\x00\x12:\x1d*\x00\x05\x00'
 b'\x1a\x05\xef\x9a\x00\x04\x00\x1f\xeby5\xf6\xfa\xba\r\xc1\xe8\\\x12p'
 b'5\xf6\xa3\xba,\xd1\xb3^\xc5\xf1\xda=\xa5\x13OP\xccd\xae\xc9\xaf\x89B\x00'
 b'#\x00\x00\x00-?\xd39M\xf7\xa4\x1c,\x00\x00\x00E')

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

{'A1': -0.06309202186418839,
 'A2': {'B1': {'C1': [{'D1': [44, 35], 'D2': 97, 'D3': 43684},
                      {'D1': [-127, -52, -72, 122, 99, -104, 19, 26],
                       'D2': 58,
                       'D3': 7466},
                      {'D1': [-100, -51, 62, 42, 82], 'D2': 5, 'D3': 61338},
                      {'D1': [29, -50, 52, 121], 'D2': -21, 'D3': 31029}],
               'C2': [-650002627951043566,
                      8085639889077195187,
                      6829130329616618319,
                      5822139120154020162]},
        'B2': {'E1': 11441848578405269392, 'E2': -26136},
        'B3': {'F1': 59183, 'F2': 5494194394002469012},
        'B4': 0.3003725927705456,
        'B5': {'G1': [3780578655,
                      1542701538,
                      2052848949,
                      3003096674,
                      3365761512,
                      2489379082,
                      1628910077],
               'G2': [14089, 22253, 4174, 12978, 58053, 55607, 10590]}}}

Вариант №13

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'KPIR!\x9f\x99\x1f\xf9\xe8\xc2\xe6\xe0\n\xf8\xea$\xf6\x0f\xa5\xf7\x14>\x0e'
 b'\x98\xb6\x99N\x00\x03\x00\x88\x00\x00\x00\x06\x00\x91r\x00\x00\x00\x04\x00'
 b'\x00\x00\x97<\xa5\xd9\xf8\x90\x05\xabx\x12\x06\xf4\xb0\xa2]\x16-\xbf'
 b'\xe5}\xc6\x87\x93\xe9\x96\xd2\x90\xb4>\xa3\x1b\xab\x9f\x85\x9e*\x96\xdf'
 b'\x04m.\xbah\xb2K\x17\x86\xf1 \x85\x8c\xeb\xd0?\x87HD\xa5Q\xb0\xe4y'
 b'\xc7\xeac\xded\xe6m\xbe\xa8\x03\x9b\xbf\x1a\xca\xa0\xb0\xa0\xb3a\xd6'
 b'\x82i\xfb\xe0]\xdd\x90\x86\xddl\x8b\xcb\xacZ\xaa\xf7\nX2\x0b\x08Z\xf04'
 b'9\x15\x89X\x10\xb1\xfb')

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

{'A1': 2422823487164433126,
 'A2': -2302754574920446043,
 'A3': {'B1': {'C1': -642820614394570418,
               'C2': [{'D1': 56684, 'D2': 139},
                      {'D1': 52140, 'D2': 90},
                      {'D1': 43767, 'D2': 10}],
               'C3': [88, 50, 11, 8, 90, 240],
               'C4': {'E1': 114,
                      'E2': [13369, 5513, 22544, 45563],
                      'E3': 4370138675024341880}},
        'B2': {'F1': 1298994582018397741,
               'F2': -0.671603455353124,
               'F3': 3532698686,
               'F4': 11753176354183326358,
               'F5': [-553358034,
                      -1167543733,
                      394719520,
                      -2054362160,
                      1065830468,
                      -1521372956,
                      2043144803,
                      -563812755]},
        'B3': -0.32815250754356384,
        'B4': -0.6046543121337891},
 'A4': 45216,
 'A5': -77,
 'A6': 97,
 'A7': 15457033401610919312,
 'A8': 134}

Пример 2

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

(b'KPIRCp1\xc0\x02CXA6\xfc\\\r\xeb\x13R_\xf89n\x01\xa1\x16\xee\x80'
 b'\x00\x02\x00\x88\x00\x00\x00\x02\x00\x8e$\x00\x00\x00\x04\x00\x00\x00\x90\n'
 b'\xbc\xa0\x95\x7f\xedq\x87,>\x92J\x0e\xe2;\xc4?\xd8\x14\xc9\xe3ip\x94\xd0'
 b'\xc9\x1a\xbc\x1ej61\x9d\xdb~\xc4I\x057\xbd\xcd\xdf\x80\xc11\x9b\x02\xdc\x97'
 b'\xe7\xd1\xe4u\\x\x8e\xcfW\xb5\x87\x7fW\xed*0\xd34\x84>\xa9\x0e*>'
 b'\x8fh\x8c\xe1\x8e\xe3\x7f\xb4\x9c\x10\xe9\xea\xa4\x0c\xe4\xca\x88>\xe0\xf6'
 b'\x8d<\xab\xea\x1d"/\x9e\xdc\xf4X\x00')

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

{'A1': 4859438698674214977,
 'A2': 3962142987027436127,
 'A3': {'B1': {'C1': -560295725354258816,
               'C2': [{'D1': 34878, 'D2': 224}, {'D1': 63117, 'D2': 60}],
               'C3': [171, 234],
               'C4': {'E1': 36,
                      'E2': [7458, 12190, 56564, 22528],
                      'E3': 773669799957721479}},
        'B2': {'F1': 3188146432999832516,
               'F2': 0.37626883705321146,
               'F3': 3502840508,
               'F4': 2191623755398872772,
               'F5': [1225078717,
                      -840990527,
                      832242396,
                      -1746415132,
                      1968994446,
                      -816335481,
                      2136468778,
                      819147908]},
        'B3': 0.3301861882209778,
        'B4': 0.2800945043563843},
 'A4': 57742,
 'A5': -29,
 'A6': 127,
 'A7': 13014295620043934948,
 'A8': 202}

Вариант №14

Задача №12

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

Структура A:

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

Структура B:

Поле Описание
1 uint64
2 float
3 uint8
4 uint64
5 int32
6 Структура C
7 Структура D
8 Массив int32, размер 6

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'\xfdNYK*_\x004\x00\x05\x00\x00\x00\x92Gd\xd8Ki7\x00\x00\x00\x03'
 b'\x00\x0e\x9f\xab\x00\x00\x00\x03\x00\x11.\x01\xff\x9c(\xac{\x82\x95\xb7'
 b'O\x00L\xd9\x9d\x89\x11\xccc\x8d\xe0!a\x0b\xb2z>\xa3\xe6\xc4(-R_v\xfa\xfa\xc8'
 b'\xa1^\xe1\x12"\xd8\xed\xd6}\xbf\xcb\x81\'%\x8f\xd4\x18\x00\x02\x00'
 b'\x14\xb3m\x00\x04\x00\x00\x00$?\xd6\xf6\x1fc\xc1E\x90?\xd5\x1e'
 b'\x8d\x86\xb2\xc9L>\x85\xd8\x84\xe4\xf4\xecs\x1e\xb3\x93q\xc2J\x87\x9d\xed1 '
 b'4\x8e(\x7fD\x12\x05\xa72\x99j\x9e6\xf8\xfc\xd0\xa1s\xf6\x8c')

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

{'A1': 10847,
 'A2': {'B1': 7173636215437767290,
        'B2': 0.3201199769973755,
        'B3': 40,
        'B4': 3265777644418549921,
        'B5': 1591808546,
        'B6': {'C1': -655501699, 'C2': -0.2148789342315076},
        'B7': {'D1': [{'E1': [71, 100, 216], 'E2': 40875},
                      {'E1': [75, 105, 55], 'E2': 11777}],
               'D2': 45933,
               'D3': [4288424108, 2072155575, 1325419737, 2643005900],
               'D4': 0.3587721323175055,
               'D5': 0.32998979715479915,
               'D6': 0.2614175081253052,
               'D7': -28},
        'B8': [-185830626,
               -1282182718,
               1250401773,
               824194190,
               679429138,
               94843545]},
 'A3': [27294, 14072, -816, -24205, -2420]}

Пример 2

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

(b"\xfdNYK\x8d\xab\x00C\x00\x06\x00\x00\x00\xa1p\xd5'\x03\xde\x00"
 b'\x00\x00\x02\x00\x0e\x814\x00\x00\x00\x03\x00\x10\xb3\xb1\r\xb4\xd6\xdeW'
 b'@\xca\x9d\xfc\x9bv\xd9\xd6\xc4\xbe\xf4\xac/f\xf0\xe6J`\\\x80!C/9'
 b'O\xc8\xa1\xffAuc/\x9d\x9f\xcb>t$\xbf\x92\x16\xe6\xd8?\xde\x1d`\xf5UP\xe6 '
 b'\xc6u\xd7\xbe\xbf\xc6\x90\xa4}\xb7-\xa0\x00\x02\x00\x13\xa9u\x00\x08'
 b'\x00\x00\x00#?\xdf\xcf\xba\x8c\x84\xfa\x0c\xbf\xea\x10\xdeh?\xdc*'
 b'\xbe\xee\xcc\xc1\x98\xa2\xae\x7f\xc8$\xc3\x9b.\xca\x0c\xc2\xc2\x1d7E'
 b'}!\xea\xee\xaf\xb6\x8e-\xc6\x1au\x8bd~\xb2\xb3\x15\x17U\x06p')

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

{'A1': 36267,
 'A2': {'B1': 18393111422018887627,
        'B2': 0.23842142522335052,
        'B3': 146,
        'B4': 1650244082298872053,
        'B5': 1431365152,
        'B6': {'C1': -965355586, 'C2': -0.1762891401143465},
        'B7': {'D1': [{'E1': [112, 213], 'E2': 33076},
                      {'E1': [39, 3, 222], 'E2': 46001}],
               'D2': 43381,
               'D3': [229955294,
                      1463863965,
                      4238046937,
                      3603218164,
                      2888787696,
                      3863634012,
                      2149663535,
                      961530017],
               'D4': 0.4970537540683899,
               'D5': -0.8145591770288594,
               'D6': -0.4664058983325958,
               'D7': -104},
        'B8': [-1565622328,
               616799022,
               -905133374,
               490161533,
               569044655,
               -1232196154]},
 'A3': [6773, -29852, 32434, -19691, 5973, 1648]}

Вариант №15

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'HEIZ\x1e"\x8fs\x89\xc7\xc9\xe0\xbfZ\xf2\xa0\xcd\x00U\x18\xb4\x1d\xcc\x9b'
 b'\x06\x00,\x00\x00\x00\xd5\xfe\xee\xc4\xf6\xd6\x02\x00V\x00\x00\x00\x87\xe6'
 b'\xb1\x83.\xaaP\xb90&\x80O\xe0Eu\x0f\xea\x98Z\xe1\xa1\xeb\x8a\xdbbz'
 b'\x1d\xcdN\x83\x81\xe8\xe7.\xf1l^\xf1ST\xf6\xc4&b\xff\\K\xbdY\x87fud\x15'
 b'4\x94\x05\x00D\x00\xec)y?Q\xa2j\x86c_c\xfa\x04\x00N\x00')

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

{'A1': -0.5246312794301711,
 'A2': 90,
 'A3': 13476082,
 'A4': 85,
 'A5': {'B1': 3424498712,
        'B2': 155,
        'B3': [{'C1': -79, 'C2': -125, 'C3': -21970},
               {'C1': 80, 'C2': -71, 'C3': 9776},
               {'C1': -128, 'C2': 79, 'C3': 17888},
               {'C1': 117, 'C2': 15, 'C3': -26390},
               {'C1': 90, 'C2': -31, 'C3': -5215},
               {'C1': -118, 'C2': -37, 'C3': 31330}],
        'B4': -990970155,
        'B5': 246,
        'B6': 214,
        'B7': [{'D1': -0.04964923486113548,
                'D2': -30887,
                'D3': [102, 117, 100, 21, 52, -108],
                'D4': [52509, 33614, 59521, 12007, 27889]},
               {'D1': 0.9732959270477295,
                'D2': -23983,
                'D3': [106, -122, 99, 95, 99, -6],
                'D4': [61790, 21587, 50422, 25126]}],
        'B8': -6521}}

Пример 2

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

(b'HEIZ\x1e\xd0\xb1\xf56^\x19\xe6?\xf0\x0b$U\xf82\xa0\xe7\x00\x17\xbe'
 b'\x04\x00,\x00\x00\x00gu\xf0?)\xe4\x03\x00P\x00\x00\x00\x190c\xe3\x98\xab'
 b'!\x9c\xde/\x91\xe4\xf8j}\xc2\x9a\xe8pv\x17\x9f\xbf\xe0/\xa2Op _$\xab{\x13'
 b'`z\x11\xd2AT7\xbfn\x8d\xcd\xa8\x81i\x8b\xe4\x02\x00<\x00\xd5\x1b=?'
 b'\x95\xdd\xf9\xce%\xb0\xdd\xc8\x02\x00@\x00.\xa3\x0e?T\x89\xb7\xa4'
 b'\xcb\x05\x1cK\x06\x00D\x00')

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

{'A1': 0.6905966828758725,
 'A2': -16,
 'A3': -128637941,
 'A4': 50,
 'A5': {'B1': 385935264,
        'B2': 190,
        'B3': [{'C1': 99, 'C2': -29, 'C3': -21608},
               {'C1': 33, 'C2': -100, 'C3': 12254},
               {'C1': -111, 'C2': -28, 'C3': 27384},
               {'C1': 125, 'C2': -62, 'C3': -5990}],
        'B4': 1072723303,
        'B5': 41,
        'B6': 228,
        'B7': [{'D1': -0.7161293625831604,
                'D2': -29330,
                'D3': [-51, -88, -127, 105, -117, -28],
                'D4': [30320, 40727]},
               {'D1': 0.7387059330940247,
                'D2': -8811,
                'D3': [-7, -50, 37, -80, -35, -56],
                'D4': [57535, 41519]},
               {'D1': 0.5571774244308472,
                'D2': -30380,
                'D3': [-73, -92, -53, 5, 28, 75],
                'D4': [28751, 24352, 43812, 4987, 31328, 53777]}],
        'B8': 12313}}

Вариант №16

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'MMO\x88\x00\x00\x00\x02\x00\x00\x00:Xd\xac\xadB\x81Q\x87\x00\x04\x00\x00'
 b'\x00<\xbf\xee\x00\x982"\xbb\x12\x00\x00\x00d?h\xae\xbe\xaf\xa6\xf6\xee\xd3]'
 b'\xc4QY\xb5(\xbe\xc5\xfb\xee\xbbfc\xb2?)\xbc\xae\\P\x02Q=\xccy"\xb2\xfdV'
 b'\x80\xb5*\x89\xbe\x89#T?\x1a\x8d\x8d\xbf\x10{w>\xb1\x19{\xbe\xa5\xb1K'
 b'\xd4 \x81[\xbf\xe5\xbb\xb9\xb6u\xbc\xf0>\x9d\xe7S\x93\xeeX\xf8'
 b'\x80\x86\xdd\x1f\xe0U!?\xc5\x8b\x86H\xe5\xf1\xe0\x00\x00\x00\x05\x00'
 b'\x00\x00P')

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

{'A1': -120,
 'A2': 'fc',
 'A3': 6369405633153814919,
 'A4': [{'B1': -1304483396, 'B2': 174},
        {'B1': 1548747345, 'B2': 61},
        {'B1': -864476494, 'B2': 253},
        {'B1': 1451275562, 'B2': 137}],
 'A5': -0.9375725726330038,
 'A6': {'C1': 3558900059,
        'C2': -0.6791657031698417,
        'C3': {'D1': 0.30840548872947693, 'D2': 147},
        'C4': {'E1': -296159104, 'E2': -31011, 'E3': 534795553},
        'C5': 0.1683204513500547,
        'C6': [-0.2678476572036743,
               0.6037223935127258,
               -0.5643839240074158,
               0.34589752554893494,
               -0.3236182630062103]},
 'A7': 0.9089163541793823,
 'A8': {'F1': -1348012306, 'F2': [54109, 50257, 22965, 10430, 50683, 61115]}}

Пример 2

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

(b'MMO\x9d\x00\x00\x00\x07\x00\x00\x00:"/\xfc:\x8d\xdd\xec\x96\x00\x03\x00\x00'
 b'\x00A?\xed\xea\xe1+\xf5|v\x00\x00\x00X\xbe\xc70MP\xc7\xf2C\xcd\x8a\xab\x88Le'
 b'\xa8\xac\xdf4WFybulbyq{\xce\xd7\x86>\xcc\xf6\x9e\xbd\xb3\x1d\xc5\xe7\xb2\x1b'
 b'?\x0e\xf5\xc2?H\t\xc3X\xfb\x18\xe1\xbf\xe6G\xb5\xf8\\7\xea?U\x7fV( \x9fX'
 b'(\x98\xdc\xf4\x1c\xa1^?\x8d\x95\x87\xb6\x81\x11\x00\x00\x00\x00\x02\x00'
 b'\x00\x00P')

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

{'A1': -99,
 'A2': 'ybulbyq',
 'A3': 2463464849613384854,
 'A4': [{'B1': 2077153158, 'B2': 62},
        {'B1': -856252739, 'B2': 179},
        {'B1': 499509170, 'B2': 27}],
 'A5': 0.9349218233654841,
 'A6': {'C1': 1492850913,
        'C2': -0.696253762320109,
        'C3': {'D1': 0.8339742422103882, 'D2': 40},
        'C4': {'E1': 547313704, 'E2': -26404, 'E3': 4095517022},
        'C5': 0.014445362336239942,
        'C6': [0.5584374666213989, 0.7813989520072937]},
 'A7': -0.38904038071632385,
 'A8': {'F1': 1355280963, 'F2': [52618, 43912, 19557, 43180, 57140, 22342]}}

Вариант №17

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

Поле Описание
1 uint64
2 uint8
3 uint8
4 int16
5 uint32

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

Пример 1

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

(b'YRSY\xbf\x08H\xd9\x00\x00\x00<\x00\x00\x00\x83<\xdf\x1a^\x00\x02\x00\xa5'
 b'\xb6\xc2\xd6=9\x86\xe8.\x87"\xbfb\x02\x8f\xbd\xca\x96A\x00\x18[,\xcf,'
 b'?x\x1d\x92\x00\x00\x00\x02\x00\x00\x00(\x00*I\xdd!f$&\xb3\x80x\xd9\xb1\xd6ru'
 b'&\xeb\x9b\xa9r\x08\xc3:\xdes`\x83\x94\x12V?\x8a\xe4\xf9(\x91+\r\x14'
 b'\xa0D<\x97D\x90\x0f\xca\xe4#\xe5\xccB\x00^THO~\xbf`\x7fo\x00\x00\x00\x03\x00'
 b"\x00\x00n\x00q\x84\xddi_d\xec\xdb\xf1\x95\x9e\xafg'v<\x96u3\xaac\xc9^\xc2"
 b'\xfc\xbcB\x81\x01<\xfe\xb8kO=\x94\xff')

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

{'A1': -0.5323615670204163,
 'A2': [{'B1': {'C1': {'D1': 13169323818831243310,
                       'D2': 135,
                       'D3': 34,
                       'D4': -16542,
                       'D5': 42974666},
                'C2': 1529663276,
                'C3': 0.9692012071609497,
                'C4': [150, 65]},
         'B2': 1239228774,
         'B3': [606516096,
                2027532758,
                1920280299,
                -1683394040,
                -1019552141,
                1619235858,
                1447004900]},
        {'B1': {'C1': {'D1': 17953759528601559108,
                       'D2': 60,
                       'D3': 151,
                       'D4': 17552,
                       'D5': 264954915},
                'C2': 1414025086,
                'C3': -0.8769444823265076,
                'C4': [229, 204, 66]},
         'B2': -2065864353,
         'B3': [1693244401,
                -1784762521,
                662060182,
                1966320227,
                -916536580,
                -1136492287,
                1023326315]}],
 'A3': 0.02723425254225731,
 'A4': [20285, -27393]}

Пример 2

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

(b'YRSY?=[\xfd\x00\x00\x00=\x00\x00\x00\x83?Ng\xd1\x00\x02\x00\xa5\x1c\xe66\xa7'
 b'yE\xc2e\x94\xe0\xd6\x15\x96 \x8d\x1d\xeb\x92.\x00\x186\x81\xa9+?o\xb6'
 b'4\x00\x00\x00\x03\x00\x00\x00(\x00+\x80\xb2\x13\xf4*\x1f\xd1M\x12'
 b'X\xa9\xb6\x84;|\xcdz\xcb\xfc\x91F\x87.\xa3\xb3\xfeR\x93\xa6\xb6\x8e\\\xdc'
 b'\x8d^E\xf7\xcf\x8b\xda5\xdd\xad\xe8II&-\x89J\x00_n\x7f\x0cr\xbeR\xd5\x89\x00'
 b'\x00\x00\x02\x00\x00\x00o\x00qE\xd7\x0ef\xcc\xc4*\xb7\xe0\x1d\xae'
 b'\xd1\xb2y\x8e\xd20\xa3\x04\x08\xa0\x08\xf5\xfb7\xb73\xa5Ox\xa67\xf6\xf1\xed'
 b'\x14')

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

{'A1': 0.7396848797798157,
 'A2': [{'B1': {'C1': {'D1': 2082411970627486309,
                       'D2': 148,
                       'D3': 224,
                       'D4': -10731,
                       'D5': 2518715677},
                'C2': 914467115,
                'C3': 0.9363739490509033,
                'C4': [235, 146, 46]},
         'B2': -2135813132,
         'B3': [706728269,
                307800502,
                -2076476211,
                2060188817,
                1183264419,
                -1275178349,
                -1497985444]},
        {'B1': {'C1': {'D1': 15892462314663676890,
                       'D2': 53,
                       'D3': 221,
                       'D4': -21016,
                       'D5': 1229530669},
                'C2': 1853820018,
                'C3': -0.20589269697666168,
                'C4': [137, 74]},
         'B2': 1171721830,
         'B3': [-859559241,
                -534925615,
                -1300656430,
                815989768,
                -1610025477,
                934753189,
                1333306935]}],
 'A3': 0.8062716126441956,
 'A4': [-2319, -4844]}

Вариант №18

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'YUJVJp\xd2\xd8\xbe\x17\x00\x0e\xc4\x02\x00w\x00\x00\x00\xfd\xbbH[yujro'
 b'\xbe\x14D\x83\xfa^At]\xac!?>\x0f\x15\x16l\xfb\xe5?\x14\x1c\x81>\x9b\x8b ?'
 b'\x04\xe31\x807\xee\x81o\x04\x00\x00\x00 \x00y\x01J\x83LDW[\xbc\xf1\xd9H?\xf6'
 b'Hus\xf8\xca\xe8?\xb7\xf8P>\x90`*\xbe\xca\x04\x9e\xe0v\xdb\x92\x06\x03'
 b'\x00\x00\x00L\x00\xe7Ef\xddK\xd1$\x00O\x00')

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

{'A1': -0.4234805107116699,
 'A2': {'B1': 'yujro', 'B2': 2202277054},
 'A3': 14,
 'A4': 196,
 'A5': [{'C1': 0.6315363049507141,
         'C2': {'D1': 0.6869411879820075,
                'D2': [0.25216734409332275, 0.6271302103996277],
                'D3': [4, -29, 49, -128]},
         'C3': 1870786103,
         'C4': [-6, 94, 65, 116],
         'C5': 377,
         'C6': 1145865034},
        {'C1': 0.7845755219459534,
         'C2': {'D1': 0.7747766737977873,
                'D2': [0.20407377183437347, -0.16638398170471191],
                'D3': [-54, 4, -98, -32]},
         'C3': 110287734,
         'C4': [87, 91, -68],
         'C5': 17895,
         'C6': -783557274}],
 'A6': 1531493373}

Пример 2

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

(b'YUJVJg}\xde>\x17\x00*A\x02\x00u\x00\x00\x00>\xd6|\x1awcukz\xc3\x1a\x1c\x99'
 b'\xfay*\x1e7\xbflrQ\x169\xdb\xd8\xbf\xd8j\x04>4\xcb{?\xa3\\\x85{\xed\r'
 b'da\x02\x00\x00\x00 \x00.\xc4=\\\x8dm\x01\xdeP\xb3\xe49?\x9a\x01\x7f4R*\xee'
 b'\xbf\xe8t|>\x01\x1fX\xbfI3\x9f\x1c\xfe\xc4gi\x03\x00\x00\x00J\x00=A\x10K\x03'
 b'\xac"\x00M\x00')

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

{'A1': 0.4345504939556122,
 'A2': {'B1': 'wcukz', 'B2': 2568755907},
 'A3': 42,
 'A4': 65,
 'A5': [{'C1': -0.7153040170669556,
         'C2': {'D1': -0.38838030986315775,
                'D2': [0.12931382656097412, 0.9835693836212158],
                'D3': [-93, 92, -123, 123]},
         'C3': 1633947117,
         'C4': [-6, 121],
         'C5': 50222,
         'C6': 1837980733},
        {'C1': 0.7261459231376648,
         'C2': {'D1': -0.9426661515536126,
                'D2': [0.24653971195220947, -0.8442230820655823],
                'D3': [73, 51, -97, 28]},
         'C3': 1768408318,
         'C4': [1, -34, 80],
         'C5': 16701,
         'C6': -1409070320}],
 'A6': 444388926}

Вариант №19

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'GXVV\x99\x1f\x1a>\x03\x00\xa6\x00p\x02\x00\xac\x00\x00\x00\xb0b\x8bO?'
 b'\x86\xaeN\x86\x84\x19?s$T\x8e\x84L?B\x04\xea+\xd2\xc7\x93\xc3\x12\x83'
 b"\xa4AL\xc1\xbc\x17h\xd0eG\x03\x00\x00\x00'\x00\x00\x00\xd8\xdbb\x81\xee\x8d"
 b'K\xa0\x8c{\x03\x00*\x00:\xb3y\x99U\x1bt\xbdL\x9c\xde\x15\x10d\x16s\xc6\x07+I'
 b'\x1f\x05\x00\x00\x00Q\x00\x00\x006\xb7\x8c\xbbe\xa0F\x93\x1c\xbd\x02'
 b'\x00V\x00\xd0=#\xd1\xeb\xa5\xf8cV\xafd\x9d\x88U\xb1\xd4\xa9\x90N\x88\x02'
 b'\x00\x00\x00|\x00\x00\x00bK\x03\x155\x7f>\t\n\xe0\x04\x00~\x003-\x00'
 b'X\x00\x82\x00\xa2\x94O\xea\xb5\x11\xbc\x0f')

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

{'A1': 0.15051116049289703,
 'A2': [{'B1': -1534913853,
         'B2': 65,
         'B3': {'C1': 5144747294834082124,
                'C2': [4, 234, 43],
                'C3': -6896262348875310120,
                'C4': 31628},
         'B4': [210, 199, 147],
         'B5': 58},
        {'B1': 366910540,
         'B2': 16,
         'B3': {'C1': 2254380400869840484,
                'C2': [179, 121, 153, 85, 27],
                'C3': -7834398142965696714,
                'C4': -17124},
         'B4': [116, 189],
         'B5': 208},
        {'B1': 1689212515,
         'B2': 157,
         'B3': {'C1': -8624797177275656824,
                'C2': [61, 35],
                'C3': 666109660859943778,
                'C4': -8182},
         'B4': [209, 235, 165, 248],
         'B5': 51}],
 'A3': 112,
 'A4': {'D1': [3931083938, 263983541],
        'D2': 5669616587381629616,
        'D3': 0.5996783971786499},
 'A5': 2387879027,
 'A6': 1111444612}

Пример 2

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

(b'GXVV!\x84\x04\xbf\x03\x00\xb2\x00\xad\x02\x00\xb8\x00\x00\x00\x81'
 b'(\xe0\xfa\xfa\xf5+\x06\xddZ\x88\xbe\x0b\xb4\x18\xcf\t\xf9\x81\xf3r'
 b'\xe8\x92\x03Sx\xf2\xf52\xdb\xcf\xc7\x08E\xaf\x04G\x17\xaa\x1d\xb1R\xc5\t\x06'
 b"\x00\x00\x00'\x00\x00\x008\xa4W\x813\x1c\x0bb*i\x05\x00-\x00O\xc1\xee"
 b'\xf5\x914\xbd\x91i;\xdcZp;,Z\xc7\x08\x82c\x1e\x0e\xa9\x04\x00\x00\x00'
 b'V\x00\x00\x00]\x19m%\xf9,\x17\xb6\x05\xad\x05\x00Z\x00aW\xdaX\xa7\xeb'
 b"H\xa8\xd4f\xd6\xba3)3-}\xa0'\x9d\x02t\xdbe\xfa\x08\x00\x00\x00\x83"
 b'\x00\x00\x00|\xc6\xbe>l\xe0\x84\xee{\x8e\x03\x00\x8b\x0002\x00_\x00\x8e\x00'
 b'\xc4/\xa9\x13C\xec<8')

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

{'A1': -0.5176411271095276,
 'A2': [{'B1': -1354430265,
         'B2': 4,
         'B3': {'C1': 704059837413726023,
                'C2': [114, 232, 146, 3, 83, 120],
                'C3': 7064771447999669304,
                'C4': 26922},
         'B4': [242, 245, 50, 219, 207],
         'B5': 79},
        {'B1': 997219036,
         'B2': 44,
         'B3': {'C1': -6265036618893572262,
                'C2': [193, 238, 245, 145],
                'C3': -5325738585755936419,
                'C4': -21243},
         'B4': [52, 189, 145, 105, 59],
         'B5': 97},
        {'B1': 758327603,
         'B2': 125,
         'B3': {'C1': -403675300273248352,
                'C2': [87, 218, 88, 167, 235, 72, 168, 212],
                'C3': -1259635240243116420,
                'C4': -29061},
         'B4': [102, 214, 186],
         'B5': 48}],
 'A3': 173,
 'A4': {'D1': [329854916, 943516739],
        'D2': 444719446525749377,
        'D3': -0.2663182318210602},
 'A5': 3474502667,
 'A6': 4085381385}

Вариант №20

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'`RKI\xa7\xd7\x97\xb4\x02\x00\x00\x00\xa7\x00\x00\x00\x94\xa9\xe0L~\xdf\xdd?'
 b'\x0fw$\xb4\xf4\x9f\xaf^ILR\xbf/\x1c\xa5y\xda8\xf8\x8a\x0c\xba\xb3 \xafj"\x8f'
 b'v\xee\xd5\x18=\xcb\xc2\xbc\xdb\x97\xc7\xe3!\xa9\x06\xab\x89QV\xc5\xd2\xfdK,'
 b'N\xbfQL\xe2-}\xa1\xf0~\xc5\xa1\xd2\xf0G\xba\xee\xf1\xe2\xc8kT\xbfW@\x96;A'
 b'\xb0\xb4\xb9\xc5\xa9\x00\x00\x00\x9bI2\x19\xdb\xa9\xb3\xf9*J\xe0\x00'
 b'\xfa\xb7\xec?\x05\xd0\xd3\x7f\x02\x00\x00\x00\xb3\x00\x00\x00\xc4{!\x00'
 b'\xd1\xac\x1a\xfc\xad\xcbuk>\xefkP\xee\xe5\xfd\xe7t\xb7\xbf-\x14B\xbfmtqC\xc5'
 b'\xe9\xa2C\x10\x8b\x17\xafp\x14')

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

{'A1': 3029850023,
 'A2': 'mt',
 'A3': 0.46676595218254957,
 'A4': {'B1': [{'C1': [15, 119, 36, -76, -12, -97, -81, 94],
                'C2': -0.8214765191078186,
                'C3': 10013816282453187631,
                'C4': 12},
               {'C1': [-70, -77, 32, -81, 106, 34, -113, 118],
                'C2': 0.037313394248485565,
                'C3': 2442014878005510859,
                'C4': -87},
               {'C1': [6, -85, -119, 81, 86, -59, -46, -3],
                'C2': -0.8053633570671082,
                'C3': 9146988402202266705,
                'C4': -59},
               {'C1': [-95, -46, -16, 71, -70, -18, -15, -30],
                'C2': -0.8297696113586426,
                'C3': 13381514187043651671,
                'C4': -59}],
        'B2': {'D1': 3922019185, 'D2': [-94, 67, 16, -117, 23], 'D3': -81},
        'B3': 422726043,
        'B4': -22053,
        'B5': -1613,
        'B6': 0.8974580781089732,
        'B7': 5,
        'B8': {'E1': -48,
               'E2': 32723,
               'E3': [112, 20],
               'E4': -280722013106897980,
               'E5': -83,
               'E6': 0.22994153201580048}},
 'A5': 27631,
 'A6': -0.0916275973194669,
 'A7': -0.7581203579902649}

Пример 2

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

(b'`RKI\x7f\xb9)\xf9\x03\x00\x00\x00\xa7\x00\x00\x00\xaat\xc5e\x16\xb8\xec?'
 b'Q\xb6\xad\xa6T\x8f\xf7\x89\x07-b?p\x0b\xdc\r\xdel\x7f\xdb\xf5\xc6T\xb6'
 b'p/\xf01=4[\xb6>\xb7\x1cR \x9c\xda\xf0\x8d\x87\xf9\xe6\xc5\x90\xd6&'
 b'\x81g\xcd\xcc\x84>\x1d\xcdT\xe5\x86>\xdeQ\x87[ \xe0\xce\xa9\xb5Qg\xb8'
 b"\xf6j\xbf\xa4\xc8\x92\x0e\xdc\xd7G'\x9c\xaa\x00\x00\x00\xb8\xf7\xa6\xaa"
 b'\xeeG\xc1H \x91\xb0OCC\xb6?\x03\xf8\x99\xf6\x02\x00\x00\x00\xb4\x00\x00\x00'
 b'\x02.\xa0\xe23K\xca\x89\xa0\xe4?,?\x95\xde\xdc\x9a\x9f\x9dv\xba\xd5\xbf\xac'
 b'\xfet\xbfusm\x94\x0cS\xf9U\xee\x1d\t4e7\xe3')

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

{'A1': 4180261247,
 'A2': 'usm',
 'A3': 0.89747161748132,
 'A4': {'B1': [{'C1': [81, -74, -83, -90, 84, -113, -9, -119],
                'C2': 0.8834995627403259,
                'C3': 15816480117319535472,
                'C4': -11},
               {'C1': [-58, 84, -74, 112, 47, -16, 49, 61],
                'C2': 0.3561645746231079,
                'C3': 10227915117850401975,
                'C4': -121},
               {'C1': [-7, -26, -59, -112, -42, 38, -127, 103],
                'C2': 0.2593750059604645,
                'C3': 5899221310996008221,
                'C4': -121},
               {'C1': [91, 32, -32, -50, -87, -75, 81, 103],
                'C2': -0.9178271293640137,
                'C3': 2830468230962923684,
                'C4': -100}],
        'B2': {'D1': 4182969492, 'D2': [85, -18, 29, 9, 52], 'D3': 101},
        'B3': 2863069112,
        'B4': 18414,
        'B5': 18625,
        'B6': 0.08696385093259495,
        'B7': 3,
        'B8': {'E1': -8,
               'E2': 63129,
               'E3': [55, -29],
               'E4': -8517913059000308222,
               'E5': -96,
               'E6': 0.6728498935699463}},
 'A5': -8555,
 'A6': -0.3395058192531175,
 'A7': -0.9570109844207764}

Вариант №21

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'MVEml\xdf\xb9\x0e\x96\x97=?\x00\x00\x00\xbf\xdf+\xc4\x11\x03\x00g\x00'
 b'\x00\x00kv\\\x9a\xfd\x08\xd3\xb4J?\xa4K\xaaj\xe2i\xdeg>*O\xd83\xe8\xb4O'
 b'\xc3>\x8a\x0f\xc3\x8akmD\xe8\t\x0f\x852?\xce\x02\x00\x00\x00\x1a\x00mI'
 b'\xaf]t\xcar~\x0c\xe6\x1c\x00\x00\x00%\x00\x00\x00.\x00\x00\x00\x02\x007\x00'
 b'\x00\x00q\x14P\x92\xc0\xe6\t\x90\xba?\xc3\xa8\xd4\xcc\xc4-.BOe\xb3\xde'
 b'>\\\x89')

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

{'A1': 4438180947789048941,
 'A2': {'B1': 0.6973428130149841,
        'B2': -50,
        'B3': 'kv',
        'B4': 18797,
        'B5': -1869980713777603153,
        'B6': [{'C1': 150837852, 'C2': 0.7918216586112976, 'C3': -92},
               {'C1': 3798641227, 'C2': 0.2264343649148941, 'C3': 42},
               {'C1': 3895711823, 'C2': 0.38146746158599854, 'C3': -118}],
        'B7': [1804256015, 166216813],
        'B8': 113},
 'A3': {'D1': 191,
        'D2': 11231,
        'D3': 4548,
        'D4': [13443255774378872852, 3327532083716866879, 9897855207266930498]}}

Пример 2

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

(b'MVE\xb9\x18\x08M\xca\xedg\x7f?\x00\x00\x00\xa3\n\xd7.|\x03\x00g\x00'
 b'\x00\x00oe\x1e\xc2-W\xfek\xa2>\\\x93\xc1\xc4\x1c2t3>)2\x84\xcb\xbaN\x1a'
 b'\t>&\xcc(\x8e\xd3\x0b\x9135$\xa9/\xbeM\x02\x00\x00\x00\x1a\x00\x12\x93'
 b'\xc4\xc0\xcc&\xef.t\x13\x1c\x00\x00\x00%\x00\x00\x00.\x00\x00\x00'
 b'\x02\x007\x00\x00\x00\x17\xd1\x89\xa0\x9d\x88\x9e\xcc\xcd\xde\xfb\xfc\xe7P'
 b'YxT\x1b{\xe0w\xda\xe0\xfcJ')

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

{'A1': 9180567818549598393,
 'A2': {'B1': -0.1715436577796936,
        'B2': 77,
        'B3': 'oe',
        'B4': 37650,
        'B5': 1401796988702081220,
        'B6': [{'C1': 1462616606, 'C2': 0.3172301650047302, 'C3': 92},
               {'C1': 482656659, 'C2': 0.1752479374408722, 'C3': 41},
               {'C1': 3133899826, 'C2': 0.13388940691947937, 'C3': 38}],
        'B7': [3549309132, 892571915],
        'B8': 23},
 'A3': {'D1': 163,
        'D2': 55050,
        'D3': 31790,
        'D4': [14829401982621485521, 6086713100415597534, 5403440881856445211]}}

Вариант №22

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'OTFAezyegpz\x0b5\x86r\xc8\xf8\x1778E\x88\xae\xb5\x03\x000\x005>z\xa6'
 b'\xafL\xf3\xc3\x03\x006\x00T\x00\x00\x00\xa4\xa5`"\xbc\x01j\x13\xa85\xfdT'
 b'r\xac\x98\x7f\xc4\x7f\xa8f\x96\x11\xe6\xbf\xc0\\\xcfc\xaam\xc9\xbfP\tQq'
 b'\xf4y\xd8\xbf\x03\x00<\x00\x00\x00\xe6\t\x98^\xa1\xddJ\x060g\x11\x9cq')

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

{'A1': 'ezyegpz',
 'A2': 1921398027,
 'A3': {'B1': 200,
        'B2': [{'C1': -5355193076019685384, 'C2': [444, 4970, 13736]},
               {'C1': -4327030499676897739, 'C2': [21757, 44146, 32664]}],
        'B3': {'D1': [-0.6896469121020279,
                      -0.1986592280725059,
                      -0.38244353357381033],
               'D2': 453418397650651622,
               'D3': -1676581072,
               'D4': 113}},
 'A4': 576759204}

Пример 2

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

(b'OTFArlvqiot\x05\x9d!\xf7\xab\x19\xfc\xfde\xab\xc6"\xab\x04\x000\x00'
 b'\x01\x16\xa7w\x97\xe4\xfe\xfe\x02\x008\x00T\x00\x00\x00G0"\xc7\x96\xaf\x17F'
 b'y\x18v`S\xb8X\x97\xba\xa1\x945P\xa9\xe4?\xe8\xe1\xb2\x08h\x12\xd7?l\x81U\xe4'
 b'\xaa\xbf\xed?\x03\x00<\x00\x00\x00\x1e\x87\x058\xb9\xc7t\xa4\xb7\xb9HQ\xa4')

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

{'A1': 'rlvqiot',
 'A2': 4146175237,
 'A3': {'B1': 171,
        'B2': [{'C1': -6115106904562861031, 'C2': [44950, 17943, 6265, 24694]},
               {'C1': -72369204792715775, 'C2': [47187, 38744]}],
        'B3': {'D1': [0.6456681295867874,
                      0.3604984364460777,
                      0.9296469173096233],
               'D2': 11850316117841381150,
               'D3': 1363720631,
               'D4': -92}},
 'A4': 3340906567}

Вариант №23

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'EKIf_4\xa78\xec\x8d\xaeUg,\xf4y\t6m\x0cE\xa4\\\x87\x00\xa1\x80\xd8J)\x00O'
 b'\xbf\x02\x00\x00\x00\x19\x00\x00\x00&\x96\t?\x88\xd7\x81\xbe\xed\x99\x92'
 b'\xbe\xa3\r\x18\xbf55\xaa=\xa0\x00\xee>\xda0>?\xdc;Vct\xff\xb4\xff$6\xf7'
 b'\x81\x16tW\xcd\x94\xc6\xc4\x91d?\x05\x00\x00\x00M\x00\x00\x00}BS\xbfq'
 b'\xf4\x02?,\xde\x1a\xbfL\xc0L\xbe\x15\x7f\xc8=y\x85\xdb>L8$\xbe4'
 b'\xff\xf4\xee\x83t\xa0Xyncsfkzp\x1d\x00\x00\x00W\x00\x00\x00I\xab\xb43')

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

{'A1': {'B1': -5868775011326337178,
        'B2': -198416555,
        'B3': 6675536467344099705},
 'A2': {'C1': 'yncsfkzp',
        'C2': [{'D1': -0.8085961937904358,
                'D2': [32929, 19160],
                'D3': [0.5374473333358765,
                       -0.2535974979400635,
                       -0.28633061051368713,
                       -0.5939580798149109,
                       0.0831092968583107,
                       0.46484851837158203,
                       0.742932915687561],
                'D4': [15324, 25430, 65396, 65460]},
               {'D1': 0.8928492069244385,
                'D2': [13860, 33271, 29718, 52567, 50836],
                'D3': [-0.8252332806587219,
                       0.5115423798561096,
                       -0.6049525737762451,
                       -0.19995230436325073,
                       0.09789863973855972,
                       0.42875269055366516,
                       -0.16037100553512573],
                'D4': [65332, 61172, 29827, 22688]}],
        'C3': 867478345}}

Пример 2

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

(b'EKI\x88t\xe8\xef\x91\x9c\x0c`c\xb09TvSc\xb1\x165X\xd8\x87\x00\xab\x9a\xca'
 b'\xe6\xb9\xa1|\\\x10\xe4<\xbf\x04\x00\x00\x00\x19\x00\x00\x00YI.\xbfU\xef\x13'
 b'>>\xccY\xbf\x8fch?\xcc\x1a\x0c?\xa88\xea\xbd\xf1\x06\x19>\xa3\x99\x9bfH/\x11'
 b'\x9a\xd6*G\xa5\xe1 \xa1~!?\x03\x00\x00\x00Q\x00\x00\x00<\xffz\xbc\x90'
 b'\x95n?\x89E]\xbe\xe1=9\xbf\xcd\x96=?x\xb6\x82>`\x129>CA\xd6~_\xaeW\x97ucvdy'
 b'nfm!\x00\x00\x00W\x00\x00\x00\xe9@W\x0b')

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

{'A1': {'B1': 6921078877970789512,
        'B2': 1413066851,
        'B3': -2857475591984950410},
 'A2': {'C1': 'ucvdynfm',
        'C2': [{'D1': -0.7378549575805664,
                'D2': [39595, 59082, 41401, 23676],
                'D3': [-0.6808066964149475,
                       0.14446766674518585,
                       -0.8507727384567261,
                       0.9077691435813904,
                       0.5472838878631592,
                       -0.11436587572097778,
                       0.14944054186344147],
                'D4': [39331, 26267, 12104, 39441]},
               {'D1': 0.6308384537696838,
                'D2': [10966, 42311, 8417],
                'D3': [-0.015319641679525375,
                       0.9319696426391602,
                       -0.21608556807041168,
                       -0.723600447177887,
                       0.740582287311554,
                       0.255298376083374,
                       0.18073415756225586],
                'D4': [16707, 32470, 44639, 38743]}],
        'C3': 190267625}}

Вариант №24

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\x1cQJX>\x84\x0e\x18\x00\x05\x00,>\x0f\x84\xb6?\xcf\xb6\xd8\x0bD\xbe@'
 b'\x00\x02\x001\x00\x00\x00\x04\x00e\x00\x00\x00\x08\x00i\xd9Jx\x16fjzk'
 b'h\x1a\x1e\xc2\xea/\x8b\xd0\xa3/#Q#\xae\x85\xa0\x93\xc2\x9a\xf57\x0b\x1b\xc6'
 b'-\xf8P\n\x9ay\x9a\x1f4\x18n"\x17]\x19!\x07t\xf0\xd0\xc9&\xfb\xe4'
 b'\x15\xa4\x05F\xd1\x0c}Z\xec\xcb\xa8"\xf9K_\x0cb6\x89\x91\xa8\xbd\x18\x89'
 b'\x12$\xac\x00_\xcb\x10y\x83P\xe0\xb5(\xe8\xba\x80W')

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

{'A1': 0.2579200267791748,
 'A2': 'fjzkh',
 'A3': 0.14015468955039978,
 'A4': {'B1': 0.24776745367261022,
        'B2': [{'C1': [438223594,
                       797692067,
                       790843683,
                       -1366974317,
                       -1030032073,
                       186369581],
                'C2': 63568},
               {'C1': [177895834,
                       523507822,
                       571956505,
                       554136816,
                       -792123653,
                       -468343803],
                'C2': 18129}],
        'B3': {'D1': [12, 125, 90, 236],
               'D2': [-878173447,
                      1264520290,
                      914985384,
                      -1122465518,
                      615252063,
                      -888112765,
                      1356903720,
                      -390430633]},
        'B4': -649431018}}

Пример 2

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

(b'\x1cQJX?_N\xb9\x00\x04\x00,\xbf+/l?\xa8\r\xfd\x02\x86\x95@\x00\x02\x000'
 b'\x00\x00\x00\x03\x00d\x00\x00\x00\x05\x00gg\x19\x11jfabc\x8c;Y\x11f\x00#\xfa'
 b'\x1d\x86\xaa\x8f]\t\x9aLi|R\xa3\xffp\xae\x87i\xdc\xcf\xd25\xdf\xfb\xbb'
 b'\x84.\x06\xe4$\xc0\x95\x94-\xe6\xbc5\x17bp\x80\xd2\x8e~e9\xf1\xee\xb4'
 b'I\x98\x83\xf1\x0c\xd7\x87B*\xfeh\xfe~[\xd1\x89\xdb\x89\x03')

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

{'A1': 0.8722949624061584,
 'A2': 'fabc',
 'A3': -0.6686923503875732,
 'A4': {'B1': 0.04698172241050225,
        'B2': [{'C1': [-1942267631,
                       1711285242,
                       495364751,
                       1560910412,
                       1769755299,
                       -9392505],
                'C2': 27100},
               {'C1': [-808307233,
                       -71597010,
                       115614912,
                       -1785451034,
                       -1137371294,
                       1887490702],
                'C2': 32357}],
        'B3': {'D1': [57, 241, 238],
               'D2': [-1270245245,
                      -250816633,
                      1110113896,
                      -25273391,
                      -1982101245]},
        'B4': 1729696106}}

Вариант №25

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'RKHK\x04\x11`\xcb\x02\x00\x00\x00z\x00\xfa\xb9\x1d{\xa02m\xba\xe6\xe3'
 b'\xca?\x02\x00\x00\x00~\x00n\xd4\x0f\xb1\xe0c)\xb2\xfb\xed\xd5\xbf'
 b'\x04\x00\x00\x00\x82\x00\xf9\x1c-\x7f \xbd5J,\x00\xe9\xbf\x03\x00'
 b'\x00\x00\x8a\x00\xc0\xe5\xf2\xef\xb6\xc4\xaf\xbf:0\xea> 5\xb9S'
 b'\x0e\x1e\xcd\xbf\x94\xb9\xfeKO8\xe2?\xc0/T\xedg\xce\x97?Z\xf8Q\x81'
 b'\xf3\xe6\xe4?\x88\xd5\xc5Y\xaf\xe9\xe0?\x96\x00\x10\x84\xe7\x1b\x16*'
 b'\x07J\xae\xedy\xfc8V\x8a-,\\\x94\xc8\x81\xb1\xd7"b\xceUl\xb5\x0b'
 b'j\x9a\xa9\x07\x84d\x93\xaf\xb1O')

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

{'A1': 17,
 'A2': {'B1': -13472,
        'B2': [{'C1': [33808, 7143],
                'C2': 2065545722,
                'C3': 0.21007999518260068},
               {'C1': [10774, 18951],
                'C2': -1324362642,
                'C3': -0.3426503410205992},
               {'C1': [60846, 64633, 22072, 11658],
                'C2': 2133662969,
                'C3': -0.781271119061703}],
        'B3': [-929801172, 584561025, 1817562722],
        'B4': -0.062047688284518454,
        'B5': 0.4573991894721985,
        'B6': [-0.22747973526058107, 0.5693737491872519, 0.023248313770679152],
        'B7': [0.6531922841820788, 0.5285259965300364]},
 'A3': {'D1': 2590641077, 'D2': 1686374313, 'D3': 1337044883}}

Пример 2

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

(b'RKHK\x04\xcd\xc1\x90\x04\x00\x00\x00z\x00-\xd4<C\x1c\r\xbb\xd5\xd5\xbb'
 b'\xe1\xbf\x02\x00\x00\x00\x82\x00<\x9d%\xdb\xeeW\xd2\xbe/\x86\xee?'
 b'\x03\x00\x00\x00\x86\x00\x97\xac\x88\x1f\xec&\xdeM\xa0\xf5\xd7?\x02\x00'
 b"\x00\x00\x8c\x00\xb8\xebX!\x11r\xc0\xbf\xaaN\xd0\xbe\xde\x02Q'+\xfa\xeb?"
 b'\x90\r\x7f\xd7\x04\r\xc2\xbf0\x9c\xa3\xc5S\x9e\xd5?\x9c\xcd\x03Z'
 b'\x8e\x04\xe1\xbf\xc0:V\x98\xf0\xff\xca\xbf\x94\x00\xd8\xda\xa8\xc2\xf6\xb2'
 b'\xf0\xb5(U\xc7\x85\x8b\x06\xbf\x96\x80z\xfe\x90\xa8\xea\xd1K\xdf8\xf1\xf0D.'
 b'\xa7\xdc\xeb\xa3\xba\xf5\xae\xb1')

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

{'A1': 205,
 'A2': {'B1': -28479,
        'B2': [{'C1': [56024, 49832, 45814, 46576],
                'C2': 1128059949,
                'C3': -0.5541791128565907},
               {'C1': [21800, 34247],
                'C2': -618291908,
                'C3': 0.9538801886544641},
               {'C1': [1675, 38591, 31360],
                'C2': 529050775,
                'C3': 0.3743668327739289}],
        'B3': [-358051586, 954158033],
        'B4': -0.1284810459927408,
        'B5': -0.4068501591682434,
        'B6': [0.8742881553553976, -0.141022305701068, 0.33778852749532273],
        'B7': [-0.5318061597921999, -0.2109356635887334]},
 'A3': {'D1': 776270065, 'D2': 2750143655, 'D3': -1313933894}}

Вариант №26

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'UHAC\xe3l\x00\x86\x00\x00\x00\x02\x00\x9a.\xa6\xde\xdb\xcba\x1bSl\xb9'
 b'\xa7-\x08\xb5O"DJ\x0f)\x1cM!\xbc\x00\x00\x00\x02\x00\x0e\xde\x8c\xeb\xe7'
 b'\xd8\xe3\xb6\xdf\x00\x00\x00\x04\x00\x1e\x01h\xber\xf3J\x95~\x00&'
 b'\x0ed\xb1\x01c\x05\x9dM\xa1*\xc9\xb2-zE\x1bd\xa9y\x7fE\x001\xd2'
 b'\xae\xb5\x81\xea\xcc\xe3\x00\x00\x00\x02\x00J\x84\xf3\x98\xc26\xb1n\xb8'
 b'\x00\x00\x00\x04\x00ZK\xfb\xbfdho\xf5\xec\x00b\xd6j\x12\xc5-n\n='
 b'^\x92\x00\x00\x00B\x00\x00\x00~\xa2P\x91\xc0\x07\xd9\xc7h\xaf\xd1\xd0t\xc53'
 b'\xe0O\x18\x9bZ\xd8L@\xe4\x8e')

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

{'A1': 108,
 'A2': {'B1': 171794066,
        'B2': [{'C1': {'D1': [3361619207469996883, 7834476838649155362],
                       'D2': 16036451754168268511,
                       'D3': [17482, 3881, 7245, 8636],
                       'D4': 1,
                       'D5': 104,
                       'D6': -0.23725619912147522,
                       'D7': -27266},
                'C2': 3684,
                'C3': -1325309179},
               {'C1': {'D1': [11334893042306002298, 4979684492038849792],
                       'D2': 9580168792255852216,
                       'D3': [12754, -20811, -32278, -13085],
                       'D4': 75,
                       'D5': 251,
                       'D6': -0.8922185301780701,
                       'D7': -2580},
                'C2': -10646,
                'C3': 314912110}],
        'B3': -1571778112,
        'B4': 131712872},
 'A3': [12669136426713210959, 1773110763339179150]}

Пример 2

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

(b'UHAC\xe3\xc2\x00\x80\x00\x00\x00\x03\x00\x94\xb0\xcb\xcb\xb6\xe6\xf6'
 b'\xa3\xcb\xa8\xd3O,\x16xf\xeb\x80\n\xd1\xe1\xcc\xd3\x00\x00\x00\x02\x00\x0e)&'
 b'e\x89\xa0\xfd&\x93\x00\x00\x00\x03\x00\x1e\xe1b\xbf-heZ\x83\x00$\xc0\x95'
 b'\x072\x92\xd1\xfe\xc6h\x03\x05\x10a\x7fS\x18\xae7m\x0b\xb7\xdbH\xb23\x1f'
 b'\x00\x00\x00\x02\x00H\xa9*\xf6-\xed\xc9\xf7\xd4\x00\x00\x00\x02\x00X'
 b'\xf8\xe5>\xfc^\x12|\xb9\x00\\X\x8e\t\x0etV;\xacbJ\x00\x00\x00@\x00\x00\x00x'
 b'*\x95\x9cZ,\xa3\x90\xf1Q\xc1 \xa1\x9fa\xd8\xb7\x9c\x98\xa2t\xc9Xxkf\x01\xcc2'
 b'\xbe\x10\x15\x0c')

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

{'A1': -62,
 'A2': {'B1': 1001153098,
        'B2': [{'C1': {'D1': [12739499957366989771, 12165154069231986411],
                       'D2': 2965169046455920275,
                       'D3': [-32758, -11807, -13101],
                       'D4': 225,
                       'D5': 98,
                       'D6': -0.6773741841316223,
                       'D7': 23171},
                'C2': -16235,
                'C3': 120754897},
               {'C1': {'D1': [18358475293201555839, 5987727257664993243],
                       'D2': 12189826018555066324,
                       'D3': [18610, 13087],
                       'D4': 248,
                       'D5': 229,
                       'D6': 0.4929051995277405,
                       'D7': 31929},
                'C2': 22670,
                'C3': 151942230}],
        'B3': 714447962,
        'B4': 748916977},
 'A3': [5891025666113132727, 11283947488854702187, 7350380585154516236]}

Вариант №27

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'UVVB\xee)\x00\x95\x00\x00\x00\x8d({\xc0]\xf8\x08\xb3\xe8\x95rn1>\x05@,'
 b'\x91\xfd\xa6-\xd4\x1fX\x1a\x98\xd9\xd1\x04\xad\xe14\xe1\xc6b\xbf{\xfe\x1d?S'
 b'\xf8s?\xcbtP\xdb~(\xc2_\xc5\x92f\x9d\x0fk\x03\xee\xb5\xc5\xa3S\xe4'
 b'\xc2\xa3\xe0\x0c\xf3;\xaf\xe7\xe2\x02\x00/\x00\x00\x00\xa6&I\x9bi'
 b'\xb1\xb4\xbb\x06\x9b\x14\xe1"\xa5\xe47\x1a\xce\xf5\xeb7\x00b\xe2P'
 b'\xbe\xe9\xc5m\xbei\xcb\xcc\xbe\xa4<\x80\xbeB\xf5\xf3=\xd7\xa4\x91<|\xd0X'
 b'?\x88\xb8\xc4uF\xeb\xdf\xbf\xd5[\x00\x00\x00')

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

{'A1': {'B1': 225, 'B2': 52, 'B3': -0.8858471512794495},
 'A2': {'C1': 213,
        'C2': {'D1': 2605262502,
               'D2': -20119,
               'D3': [{'E1': 180, 'E2': 187},
                      {'E1': 6, 'E2': 155},
                      {'E1': 20, 'E2': 225},
                      {'E1': 34, 'E2': 165},
                      {'E1': 228, 'E2': 55},
                      {'E1': 26, 'E2': 206},
                      {'E1': 245, 'E2': 235}],
               'D4': {'F1': -615484213,
                      'F2': -7104829985717606274,
                      'F3': 6026878111524809487,
                      'F4': -15644,
                      'F5': 16350229644207513763,
                      'F6': [0.6171643137931824, 0.9530078768730164]},
               'D5': [-0.20398858189582825,
                      -0.2322002798318863,
                      -0.39998939633369446,
                      -0.2504626512527466,
                      0.11912013590335846,
                      0.017778797075152397,
                      0.8469312191009521],
               'D6': -0.49873506069969453}},
 'A3': 10381,
 'A4': 10802080557356138619,
 'A5': 10460806425737260658,
 'A6': [42749, 54317, 22559, 38938, 53721, 44292]}

Пример 2

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

(b'UVVB\xee)\x00\x95\x00\x00\x00\xa6\x88\xb2\xa8\xd0\x07\xf0R\x9f\x8d\x18\xcfy'
 b'\xae\x15d\x1b\x92\xee\x8b\x84\xed x=Xs\xb1\x05;\x8eO\xdcS\xca\xbdE'
 b'\x14\xca\xbe\xc2B0\xbf\x8f0e\xaa\x8bs]p\xb4\xa2\x8b\xee\\aQ\xf0\xed'
 b'_.\xa5\x80\x00\x81\xccY\xc1\x92\xb1"\xd8\x02\x00/\x00\x00\x003-\x00m`'
 b'\xb6j\xee\x14\x98\xf6\xb5\x80\xd0oq\x12q\xe7\xbd7\x00\xc6\t\x1c>\x14ZS'
 b'\xbf\x93J\x1d?v\xa2\x92>\xb2\xc5s?\xfa\xc5\x9c\xbe\n\xbc\x01\xbf\xc0\xa3\xc2'
 b'\xa6\xaa\x9e\xea?\xb8[\x00\x00\x00')

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

{'A1': {'B1': 142, 'B2': 79, 'B3': -0.09879276156425476},
 'A2': {'C1': 184,
        'C2': {'D1': 1828728115,
               'D2': -18848,
               'D3': [{'E1': 106, 'E2': 238},
                      {'E1': 20, 'E2': 152},
                      {'E1': 246, 'E2': 181},
                      {'E1': 128, 'E2': 208},
                      {'E1': 111, 'E2': 113},
                      {'E1': 18, 'E2': 113},
                      {'E1': 231, 'E2': 189}],
               'D4': {'F1': -1436209009,
                      'F2': -1257732775056936053,
                      'F3': 11902556340730552668,
                      'F4': 128,
                      'F5': 15574205705267825793,
                      'F6': [-0.39468589425086975, -0.6885186433792114]},
               'D5': [0.152381032705307,
                      -0.8255932331085205,
                      0.614419162273407,
                      0.28639572858810425,
                      0.9522353410720825,
                      -0.3061979413032532,
                      -0.5067754983901978],
               'D6': 0.8318684823071791}},
 'A3': -30554,
 'A4': 10204966471521577138,
 'A5': 10528118598192975640,
 'A6': [35822, 60804, 30752, 22589, 45427, 15109]}

Вариант №28

Задача №12

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

Структура A:

Поле Описание
1 int16
2 int16
3 int16
4 int64
5 Структура B
6 Структура E

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'AHFU\xaa\xa3\x84-aL\xc0\xcd\x14\xd6\xc2^S\xcf\xf1\x00W\x00Z\x00]\x00`\x00'
 b'c\x00f\x00i\x00l\xeb\xa2?\xd8A\t$s\x8a\\?\xe2L\xc8\x98\xd1\x00'
 b'\xca\xbe\xcf\x16 \x18\xd3\x156\x98\xc8-\xcc\x95z\x03lx\xbdxE\x80\xcef'
 b'\x00\x00\x00\x07\x00\x00\x00o\xcb\x0c\xc8\xe6Z\xcc\xfe)&\xc1\xfe\x0b'
 b'P\xe8\xa9\x89\x1c\xdf]\xdc9@\t\x8c\xea\xd3"?\xdfT{\xd2\xd3\xe5\x80\xbf'
 b'\xe8L\xb3;ze\xea\xbf\xd5\xfb\x08}\x1e\x97@\xbf\xb1j\x06\x85\x01\x07\x10\xbf'
 b'\xcd\xc4\xf0\xa9\xc5\xf8\x08\xbf\xc6\x90\xf2(\x1b&\x88\xbf\xeeXf\xdc~b\x8a')

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

{'A1': -23676,
 'A2': 11617,
 'A3': 19648,
 'A4': -3669071666105561103,
 'A5': {'B1': [{'C1': -6566, 'C2': -52},
               {'C1': -471, 'C2': 38},
               {'C1': -15874, 'C2': 11},
               {'C1': 20712, 'C2': -87},
               {'C1': -30436, 'C2': -33},
               {'C1': 24028, 'C2': 57},
               {'C1': 16393, 'C2': -116},
               {'C1': -5421, 'C2': 34}],
        'B2': {'D1': -5214, 'D2': [0.37896946487140837, 0.5718729958244009]},
        'B3': [3201242656, 416486710, 2563255756],
        'B4': 10770925223226996805},
 'A6': {'E1': [128, 206, 102],
        'E2': [0.4895314749588451,
               -0.7593628083879456,
               -0.3434468480939934,
               -0.06802407023590384,
               -0.23257263459885302,
               -0.17629839857390928,
               -0.9482912355916409],
        'E3': -13556,
        'E4': 200}}

Пример 2

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

(b'AHFU\xaa\xef\x8e\xe9\xe3\xc5\xff\xb3:\x7f\x8cl\xfd]\xeb\x00W\x00Z\x00'
 b']\x00`\x00c\x00f\x00i\x00l3\xdd\xbf\xed\xde\xea\xe0\xdb\x11b\xbf\xee\xe6'
 b'\xfb\xfa\xc0\x1a\xech\x9es\xe98\x9d\xd3\x15\xd3\x01$\xef\xd94\xed\x12\x9a(3'
 b'C\xd7\xe9i\x00\x00\x00\x06\x00\x00\x00o\xba\r\x96a(\x8c\x00D\x1e\x8dfZ'
 b'\xf7\x1b\xe1x\x14\x91-Rx\xf6e\xfc\x88\x0e\xf6\xbf\xe5-h\x85\xe2\xc9\xba\xbf'
 b'\xe1b\x01v\xdf\xc3\xea\xbf\xe5\xa9E\x89\xeaM\xb0?\xee\xfbK\\y\xc7\xd6?'
 b'\xea\x8c\xa7\xf0\xfd\xc6>?\xcc\xa9\xfd\xe6\r\xcc\x80')

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

{'A1': -4210,
 'A2': -5661,
 'A3': -14849,
 'A4': -5531968951170540053,
 'A5': {'B1': [{'C1': 24872, 'C2': -116},
               {'C1': 68, 'C2': 30},
               {'C1': -29338, 'C2': 90},
               {'C1': -2277, 'C2': -31},
               {'C1': 30740, 'C2': -111},
               {'C1': 11602, 'C2': 120},
               {'C1': -2459, 'C2': -4},
               {'C1': -30706, 'C2': -10}],
        'B2': {'D1': 13277, 'D2': [-0.9334616080964617, -0.9656963250607453]},
        'B3': [1755214825, 949867285, 3540067567],
        'B4': 15651395269170836291},
 'A6': {'E1': [215, 233, 105],
        'E2': [-0.6617930045088578,
               -0.5432135888823926,
               -0.6769130414635836,
               0.9681755834737895,
               0.8296699244367074,
               0.22393773778057735],
        'E3': -17907,
        'E4': 150}}

Вариант №29

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'MCFc\xa9fg3r\xbet\x00\x00\x00mobiki4\xb5D]!\x06]i<\xa5!\x87W\x14\x99\xce'
 b'\xc0g\xd1yoU\xd5PX\xaeu>\xa8!\\?\x8e3\xcel\x9c\x1c\x90\xbf}\xee\xe9\xbf'
 b'>\x7f\xb1\x02On\xcdvzp\xe1)\x1a\xa8\xae\xb2l\xcc\xd7\xb5WB\\4&\xc4\xd2?'
 b'\xe7C\xa3\xde\x94\xc1;\x85\x12\xca\xa3Vkk\x171\xdd\xeb\xd8|\x9a\xddg\xff'
 b"\xdb~\xfb\xa6\xa0'T\xc1\x85c\xac?\x03\x00\x00\x00G\x00\x00\x00\x0cD\x1d\x07"
 b'\x03\x00\x00\x00J\x00\x00\x00')

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

{'A1': 26281,
 'A2': -0.23652420938014984,
 'A3': {'B1': 2801499867,
        'B2': 0.05544679627389759,
        'B3': 'vzp',
        'B4': 17420,
        'B5': 1821,
        'B6': [{'C1': -1474680351, 'C2': 4780489467929342638, 'C3': 13404},
               {'C1': 1070777382, 'C2': 9600479875804906471, 'C3': 51730},
               {'C1': 1802196643, 'C2': 15968212699907436823, 'C3': 65383}]},
 'A4': 'mobiki',
 'A5': {'D1': 7592231287184995636,
        'D2': 14886952409411724604,
        'D3': 5824655630347102144,
        'D4': [0.2399228811264038, 0.8598885536193848],
        'D5': 1825452942,
        'D6': -0.8103626958335499,
        'D7': 62,
        'D8': 1325576575},
 'A6': 52590}

Пример 2

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

(b'MCFc\x81\x7f\x905g\xbff\x00\x00\x00fandmp\x98\x7f\xcfl\x9d\x91!vb\xda\x82e'
 b'\xd4\x89\x08\xa5\xb7\r\xae\xc1&?\x1b.lz\x01?\xae1_\xbf\x8e\x9f\xcc\xac'
 b"\x92\xba\xe4D\x11\x8d\xe3\xbf\x8f\x9cX'V$\x13led\xa7T\xea3\xbb\n"
 b'%\xae\xf6\x08\x1a\xfb\x8d8m\x01z\xf9\x02\x12\xc9\r\xba\xb7\xe4\x9c'
 b'\x94\xb6\xc8\xef5H\xec\x04:\xf6\xe7\xb9\xed\xbf\x03\x00\x00\x00G\x00'
 b'\x00\x00|\xc79\xde\x02\x00\x00\x00J\x00\x00\x00')

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

{'A1': 32641,
 'A2': -0.9031610488891602,
 'A3': {'B1': 1211494344,
        'B2': -0.9289436158288971,
        'B3': 'led',
        'B4': 51068,
        'B5': -8647,
        'B6': [{'C1': 870995111, 'C2': 18093784308491029179, 'C3': 14477},
               {'C1': -109444755, 'C2': 11305362974329868802, 'C3': 46740}]},
 'A4': 'fandmp',
 'A5': {'D1': 8512244876028379032,
        'D2': 11891906361400941154,
        'D3': 3322318585806589367,
        'D4': [0.5057742595672607, -0.8718518018722534],
        'D5': 2899091342,
        'D6': -0.6109701486182806,
        'D7': -113,
        'D8': 1445419164},
 'A6': 4900}

Вариант №30

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'RTX\xd5\x1d<\x0bh\x00\x00\x00\x03\x00\x00\x00~\x00\x94\x00\x06'
 b'\x13\x0c\xe0\xfe.%\x87\xd5\xbf\xf0\x9f\xd1FuN\xd2?xa\xca\xe9j([\x8c\xea\xbfj'
 b'\x080\xf2\xc6\xc7\xef\xbf\xdf?\xf0J\xf8\x9c\x02\xde\x11\xdd\xd8?\x0c'
 b'\xdb\x91\xa7\x81\xf6\xe0?j\xed7f\x08f\x17_4U\xef?<O\x81\xebw\xb6\xd4?W'
 b"\x8e\xa7\r\x9e\xc6\xb9=\x06\x02\x00\x00\x00%\x00'\x00\x00\x00;\x00"
 b'\x00\x00O\x00\x00\x00\x05\x00c\x00\xfb\xfa\\\x92\xda\xc1\xce\xe4>i[\xb0\xc96'
 b'\xb9\r\x7f)[\x83\xf6\xd2\xc1\xc8\xdf\xbb\x08\x0f\xc8\xb7\x04FFS'
 b'\x02\x00\x00\x00\x84\x00\x15')

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

{'A1': 29,
 'A2': 2876,
 'A3': {'B1': 'xa',
        'B2': [{'C1': -0.8296333112150986,
                'C2': -0.9931368570544354,
                'C3': 1257258975},
               {'C1': 0.3884930294102129,
                'C2': 0.5300911209913877,
                'C3': 1714941290},
               {'C1': 0.9791509492162627,
                'C2': 0.3236369895796434,
                'C3': 229084759}],
        'B3': [158, 198, 185, 61, 6]},
 'A4': [-1285, -28068, -15910],
 'A5': {'D1': -5203892839240447807,
        'D2': 1397114372,
        'D3': [3947880455021192398, -3245262053912408647],
        'D4': 21},
 'A6': 4870,
 'A7': -0.3363736113492457,
 'A8': 0.2860387031164455}

Пример 2

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

(b'RTX\xd5\x08\x8c\xc8f\x00\x00\x00\x02\x00\x00\x00|\x00\x90\x00\x1bR\xe0\xd7B'
 b'\xa1\xa4\x0b\xdf\xbf\xa0\xecs\x1c\xac\xaf\xdd\xbfdx\xc8\x17B\xe7_'
 b'&\xef\xbf\x0c\x16\xbf\\\xbb9\xd4\xbf=\xd7\xeeu\xf0\xb1+\x10\xe5\x08\xef?\xbe'
 b"'\xbd\x03\xca\xf6\xe7\xbfcL(\xcb@b+\ti\x91\x95?\xc2Jk\xd0\x98\xc9\xeb?\xf5"
 b"\xa39\xe2\x82!O\x02\x00\x00\x00%\x00'\x00\x00\x00;\x00\x00\x00O\x00\x00\x00"
 b'\x03\x00c\x00\x16\xb9\xd3\x90\xafF~*\x925\xe9\tJ\xa1\xbd \x05-2\xdd'
 b'q,\xfa\xccjd\x16\x1f\x9d\xbf\x04\\\x02\x00\x00\x00\x80\x00M')

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

{'A1': 8,
 'A2': 51340,
 'A3': {'B1': 'dx',
        'B2': [{'C1': -0.9734344021569479,
                'C2': -0.3160236745573861,
                'C3': 1978586941},
               {'C1': 0.9698357883294744,
                'C2': -0.748875624945178,
                'C3': 3408415843},
               {'C1': 0.02106250875917426,
                'C2': 0.8683590002713901,
                'C3': 3795428341}],
        'B3': [130, 33, 79]},
 'A4': [-18154, -28461],
 'A5': {'D1': 2240088274531658865,
        'D2': 1543815069,
        'D3': [714160917809350319, -2507892542444560054],
        'D4': 77},
 'A6': 21019,
 'A7': -0.48508563755183154,
 'A8': -0.46384718683811776}

Вариант №31

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'WNF9x\x13\xc5\x0cV\xcd"1o\tx4\xfb\xb5\x00\xfd{^\x05\x00\x00\x00\x98\x00'
 b'r\xefx-\x02\x00\x00\x00\x9d\x00i\x90!\xeb\x04\x00\x00\x00\x9f\x00]\xfcD\x12'
 b'\x03\x00\x00\x00\xa3\x00\xfd\xdfK\\\x05\x00\x00\x00\xa6\x00d\\1qHJ2\x0b'
 b'\xc6\xe5\xd9?^^\x1c\xeb\xf6\x03\x00\x00\x00\xab\x00\x00\x00Zp\xd3'
 b'\xbe\xa9b\xb1AGN8C\x9f\xa0\xf7lr?\xfbJ\x8fa\xd9p\xf0\xd8\xda.\x04\x11{'
 b'\xcc)`\xf18+\xc5\xc4:&\x00i\x00\x12\x95\xc1\xd2\xf3\x9aM\x9c\xcb\xd1s'
 b'%\xf8\xdd\x1bkbhzojyrsrcoacmvtyr\x07?\\\xeb\x7f\xd2')

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

{'A1': 3540618026531754872,
 'A2': 2415,
 'A3': 3053139064,
 'A4': [{'B1': 1585184000, 'B2': 'kbhzo'},
        {'B1': 762900338, 'B2': 'jy'},
        {'B1': 3944845417, 'B2': 'rsrc'},
        {'B1': 306510941, 'B2': 'oac'},
        {'B1': 1548476413, 'B2': 'mvtyr'}],
 'A5': {'C1': 1899060324,
        'C2': 0.40464926808741497,
        'C3': -350462370,
        'C4': -10,
        'C5': {'D1': [16135, -5284, -11649],
               'D2': -0.4129665493965149,
               'D3': [25257, 16817, 20039, 17208, 41119],
               'D4': 0.9469751715660095,
               'D5': 19195,
               'D6': 1893294479},
        'C6': {'E1': [786094320,
                      3430617348,
                      955342889,
                      985974059,
                      6881318,
                      3535901970,
                      2622331635],
               'E2': 53707,
               'E3': 9587},
        'C7': 56824,
        'C8': 27}}

Пример 2

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

(b'WNF9\xefq\xb92\xe4\x1dy5,\xca\xdbF\xc1\x96\x05Z\xba\xb4\x02\x00'
 b'\x00\x00\x98\x009Q\xf4\x1c\x05\x00\x00\x00\x9a\x00C\x1dX,\x03\x00'
 b'\x00\x00\x9f\x00*\xec\x1bw\x04\x00\x00\x00\xa2\x00r\xa0\xde\x03\x05\x00'
 b'\x00\x00\xa6\x00\x03A&y@\xdf\x98\r<\xf1\xb9?\xf0\x00\xc0\xab}\x03\x00\x00'
 b'\x00\xab\x00\x00\x00\xc8\x01+?\xb8(\xfa\x1d\xf0fy\xe0\x81I-\xe1k?I'
 b'\xa4\xc4|\xa3h\xfbK\xc2Rb\xe2\xed\x85\x97\xb9\xd5\xbe\x1f\xaa\xac'
 b'\xe59\x0b\xdeD\t\xed&\x19a9\x05w= i\xa8\xee9\rovbjsgrkobrspqkyekl\xf8'
 b'\xe9\xdb6\xf65')

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

{'A1': 3853143822132933103,
 'A2': 51756,
 'A3': 2529248987,
 'A4': [{'B1': 3032111621, 'B2': 'ov'},
        {'B1': 485773625, 'B2': 'bjsgr'},
        {'B1': 743972163, 'B2': 'kob'},
        {'B1': 1998318634, 'B2': 'rspq'},
        {'B1': 64921714, 'B2': 'kyekl'}],
 'A5': {'C1': 2032550147,
        'C2': 0.10133719760858373,
        'C3': -1413480208,
        'C4': 125,
        'C5': {'D1': [-5640, 14043, 13814],
               'D2': 0.6679959297180176,
               'D3': [10424, 7674, 26352, 57465, 18817],
               'D4': 0.9214046597480774,
               'D5': -23479,
               'D6': 1755544772},
        'C6': {'E1': [1388465147,
                      2246959714,
                      3201677719,
                      3853298207,
                      1155402553,
                      421981449,
                      1996831073],
               'E2': 8253,
               'E3': 43113},
        'C7': 14830,
        'C8': 13}}

Вариант №32

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'SVSX\xee\xddL\xdcz\x00\x00\x00\x02\x00\x00\x00\x83)\x00\x02\x00\xa3*I'
 b'-\x8b\x15\xab\xf6\xbf\x15\xcb\x8a>\x80\xfb\xf1aucxc?h\xb5\x9cf<'
 b'\x00\xa5\x00\x00\x00\x17\xbf\xe1\x9f\x11\x8a\xc9\x192\xf2\x04\xf3\xab\xb4t'
 b'Uk\x00\x04\x00\x00\x00&gS\x9c>\x00V?I\xe6:>\xff4\x19\\htntri\xbfR#'
 b'\x186\xcd\x1e\x88\x00\x00\x00L?\xbd\xc3\x9d\x16\xe8\x18\x10L\xd2\xb4'
 b'\x0f\x89V\x8c8\x00\x06\x00\x00\x00[\x00\x00\x00*\x00\x00\x00a\xbfw_\xea?'
 b'h\rA\xbe\x04wR>\x8c\xbc&\xbfRB\xb8>\xea\x1a(\x96H\x96z\x9d\x00\x13X\xb0'
 b'\xa2"\x00\x02\x00\x8bdO\x04\xb0\x83\xe3B\x15R\xac\xb8<=\xd94\x00\x04\x00'
 b'\x93]\xac\xdbX')

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

{'A1': 3712801914,
 'A2': [{'B1': 0.9090211391448975,
         'B2': 1715208357,
         'B3': {'C1': {'D1': 73,
                       'D2': 45,
                       'D3': -1961513994,
                       'D4': -0.5851370096206665,
                       'D5': 0.2519221603870392,
                       'D6': 97},
                'C2': -0.5506675444274036,
                'C3': -1007412497831668373},
         'B4': 'ucxc'},
        {'B1': -0.8208479881286621,
         'B2': 919412360,
         'B3': {'C1': {'D1': 103,
                       'D2': 83,
                       'D3': -1673658282,
                       'D4': 0.788669228553772,
                       'D5': 0.4984443485736847,
                       'D6': 92},
                'C2': 0.11626607712977965,
                'C3': 5535684870813420600},
         'B4': 'htntri'}],
 'A3': 41,
 'A4': [{'E1': 150,
         'E2': 18582,
         'E3': 8835218127063130658,
         'E4': [-0.9663072824478149, 0.9064522385597229],
         'E5': 1682900144},
        {'E1': 131,
         'E2': -7358,
         'E3': 1536480330171406644,
         'E4': [-0.12936142086982727,
                0.27487295866012573,
                -0.8213305473327637,
                0.457230806350708],
         'E5': 1571609432}],
 'A5': 42}

Пример 2

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

(b'SVSX\xeeiv~\xba\x00\x00\x00\x02\x00\x00\x00\x80z\x00\x02\x00\xa0X\xa1'
 b'\xddM\xb3\xdb\xcd?D\xf9A;\xaa\xc0\xd5\xc4vps>\xd5\xc0Z[.{\xed\x00\x00\x00'
 b'\x17?\xe0l\xb9[\x01\x05\xae\xdbPp`g\x91\xe5z\x00\x03\x00\x00\x00&\x1d[T^`'
 b'\x8d>\xb3\xfb,\xbf?\x0e\xd0\xddofsd?N\xbc\xf8\xf5\x82\xb8\xb1\x00\x00'
 b'\x00K\xbf\xe9\xa4\x04\xf9L\xce\x9c\xc9\x14\xaaS\x9c\xb5\x95\xbc\x00\x04'
 b'\x00\x00\x00Z\x00\x00\x00)\x00\x00\x00^\xbe*\xb8H=\xd2\n\xbb>\x81\x12+'
 b'>\x86\xdeZ?\x02C\xd9\xbd\xf7\x92\x05\xdf\'a\xd0\xd1x\xa4]"\xf7\x8a\x00'
 b'\x04\x00\x88E\xa9/\x80\xb3Q\xdc\xbb\x01l\xd42M\r>\x00\x02\x00\x98+\xb3A\x12')

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

{'A1': 1769373370,
 'A2': [{'B1': 0.4174831509590149,
         'B2': 1529773037,
         'B3': {'C1': {'D1': -95,
                       'D2': -35,
                       'D3': 1303632845,
                       'D4': 0.7694283127784729,
                       'D5': 0.0052109756506979465,
                       'D6': -60},
                'C2': 0.5132719781324135,
                'C3': -2643489421909695110},
         'B4': 'vps'},
        {'B1': 0.8075709342956543,
         'B2': -175982415,
         'B3': {'C1': {'D1': 29,
                       'D2': 91,
                       'D3': 1415471245,
                       'D4': 0.3515256643295288,
                       'D5': -0.7463197708129883,
                       'D6': -35},
                'C2': -0.8012719029561199,
                'C3': -3957350896463669828},
         'B4': 'ofsd'}],
 'A3': 122,
 'A4': [{'E1': 223,
         'E2': 10081,
         'E3': -3399803596355471478,
         'E4': [-0.16671860218048096,
                0.10255952924489975,
                0.25209173560142517,
                0.2634151577949524],
         'E5': 1168715648},
        {'E1': 179,
         'E2': 20956,
         'E3': -4971572855007539906,
         'E4': [0.5088477730751038, -0.12088397890329361],
         'E5': 733167890}],
 'A5': 88}

Вариант №33

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'XFJ\x03uu\xf9)\x88m\xa4\xb7Y0f\xf9M\x00\x00\x00>\x06\x00\x00\x00O\x00\x00'
 b'\x00f\x00\x00\x00{\x00\x00\x00\x91\x08\x00|\xa7?\xd1\xacJ\xef\xc8r\xb4\xd91'
 b'\x00\x03\x00\x00\x00\xa3\x80T,\xb8\x84\x81\x91c\xbe?\xdc?T\xff'
 b'\xb7\x84\x9c\xbc\xb0S\xee{\xd1v\x13\xae\x89\xd2\xb6\xbf\xaf\x00\x04\x00'
 b'\x00\x00K\xcb&\x9c\x108\x8b\x07F\x93\xb5`\xfe\x8b]\xf2U\x95\x00\x05\x00\x00'
 b'\x00a\xe3\x05\xca\xd2lM\x8a\xe1\xcd\x8dp<k\x122\x00\x03\x00\x00\x00x^'
 b'\x8b\x81P\xa7YY\xc5\x14\xb4\xf7]\xcf\xb1,\xcd\x00\x04\x00\x00\x00'
 b'\x8d\x04\xf0 \xb5=t\x8c\x95h\x0c.U0\xee')

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

{'A1': 30069,
 'A2': 4180248685,
 'A3': 2763479344,
 'A4': {'B1': {'C1': 26361,
               'C2': 77,
               'C3': {'D1': 2223083875, 'D2': -66, 'D3': 0.4413654801592857},
               'C4': 6,
               'C5': [{'E1': 31697,
                       'E2': 1981001353,
                       'E3': [53942, 49071],
                       'E4': [-68, -80, 83, -18],
                       'E5': -13530},
                      {'E1': 18067,
                       'E2': -1251934581,
                       'E3': [24050, 21909],
                       'E4': [-100, 16, 56, -117, 7],
                       'E5': -7419},
                      {'E1': 19850,
                       'E2': -506622608,
                       'E3': [15467, 4658],
                       'E4': [-54, -46, 108],
                       'E5': 24203},
                      {'E1': 22981,
                       'E2': 347404125,
                       'E3': [53169, 11469],
                       'E4': [-127, 80, -89, 89],
                       'E5': 1264}],
               'C6': 2048},
        'B2': 31911,
        'B3': 0.27614091316517464,
        'B4': 55601,
        'B5': [548748660, 2358601740, 777335022],
        'B6': -2141967176}}

Пример 2

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

(b'XFJ\x03C\xbe\xa7\\s^\xe0d\xd0\x1e\xdfW\x9f\x00\x00\x00>\x0e\x00\x00'
 b'\x00O\x00\x00\x00c\x00\x00\x00z\x00\x00\x00\x93\xa4\x1f\xa5\x8f?\xd4'
 b'\x87Dv\x8e\xe3\xc4n\x15\x00\x04\x00\x00\x00\xa5\xb4\xae\xa6T\xa6 {\xd7O?'
 b'\xc2\x1a\x9a|]-h\xa3\xc4\x1a\xb07)\x8aDo\xb5\xca;\xe8\xd2\x00\x04\x00'
 b'\x00\x00K\xa1H}).[\x99\xb6\xa2_r\t\xa5\xe6\x00\x02\x00\x00\x00a\xbc'
 b'9\xfd$\xfe/K\xfa\xb8hjce\x9a\xfe\x9f\xcb\x00\x05\x00\x00\x00u\x1d\x8e'
 b'\x0f\xd5\x95\x92\xc5\xbd\x94\x10X\t\xf7.$\x0fB[\xd9\x00\x07\x00\x00\x00\x8c7'
 b'\xb4c\x12\x98\xe2\t\xc66\xa6G&,d\x9d\xb9\x06N')

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

{'A1': 17342,
 'A2': 2807853918,
 'A3': 3764703262,
 'A4': {'B1': {'C1': 57175,
               'C2': -97,
               'C3': {'D1': 2787146711, 'D2': 79, 'D3': 0.1414368731733291},
               'C4': 14,
               'C5': [{'E1': 14121,
                       'E2': -1975226443,
                       'E3': [51771, 59602],
                       'E4': [-93, -60, 26, -80],
                       'E5': -24248},
                      {'E1': 11867,
                       'E2': -1716084129,
                       'E3': [29193, 42470],
                       'E4': [125, 41],
                       'E5': -17351},
                      {'E1': 64184,
                       'E2': 1751802725,
                       'E3': [39678, 40907],
                       'E4': [-3, 36, -2, 47, 75],
                       'E5': 7566},
                      {'E1': 4184,
                       'E2': 167194148,
                       'E3': [3906, 23513],
                       'E4': [15, -43, -107, -110, -59, -67, -108],
                       'E5': 14260}],
               'C6': -23521},
        'B2': 42383,
        'B3': 0.32075606897302245,
        'B4': 28181,
        'B5': [1662163170, 163985062, 1193684068, 2646148686],
        'B6': -1263622572}}

Вариант №34

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'RANV\xf8\xaa\xee\xbcXa}\xd0o\xbb\xfb)hwraiyx1Sw\xcf\x87\xeb\n\x11\xa7'
 b'\xde\xb6e+\x00\x00\x00@\xfb\xc5G\xed\xf8\x8d\xad\x13]p\'\xdf*^\x9c"'
 b"\xd3\xb9\xc9\xce\x80\x12'W\xddn\x96\x82m\x1el\xd1\xf67\x18\x1f\xccY3\xc1"
 b"\x03\x81\xb0K\xe4'\x1a\x93\x17\xa8\x05\xael\x02\xf8\x90\xe2\x03\x90\xe8"
 b"\xd0]\x90\xe0\xad\xf1\xdc\xfb\xfd\xafu\xaf*?z\x02\x00'\x00\x00\x00")

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

{'A1': 8057077590419893930,
 'A2': 1747581883,
 'A3': 'wraiyx',
 'A4': 1228052816945697585,
 'A5': 1706483367,
 'A6': {'B1': [{'C1': [2841873703968307437,
                       -3910862655788799265,
                       -7606899354194771762],
                'C2': 1813933442},
               {'C1': [3700213002783946449,
                       1884725982812767169,
                       -575778307674990701],
                'C2': 2416173712}],
        'B2': {'D1': -1872899864,
               'D2': -588141088,
               'D3': [-517, 30127, 10927, 31295],
               'D4': [-1216, 18373]}}}

Пример 2

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

(b'RANV\xf8\x08\xe9\x994\x1f\xfd\xedp\x07-\xe6\x80rqkhhr\x07\x8d^\xee\xa3'
 b'\xbe\xb4\xef"\xea\x83\x08+\x00\x00\x00\x8a\x03G\xa7\x07\xd0\xa7m\xce'
 b'\x88\x06\xc3v\x8d\x87\xa6rs\x96u\xae\xa5\x87g1\x90\xc51\x067\xf9\x91@'
 b'\xc6\xdd\xd8\x81\r\xee#\xf3.\x07u|\x8c\x17\xf0[\x80\x0ed\xc2\x85\xdeo\xe5'
 b"\xa0Q\x17\x97J\xb5\x1e?M\x98 \xd9M\x93\xd5\xc4\xcf\x82\xb2\x02\x00'\x00\x00"
 b'\x00')

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

{'A1': 8137438412196669704,
 'A2': -2132398841,
 'A3': 'rqkhhr',
 'A4': 17272640082160815367,
 'A5': 142862882,
 'A6': {'B1': [{'C1': [-4393673966268985337,
                       8473086685201534326,
                       3586431220135208366],
                'C2': 2449028870},
               {'C1': [2589021687124969024,
                       -1146293113975263501,
                       8061027452988588123],
                'C2': 391225573}],
        'B2': {'D1': 515197591,
               'D2': 546852159,
               'D3': [19929, -10861, -12348, -19838],
               'D4': [906, -22713]}}}

Вариант №35

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\xc6OUZ\xfc\x149\r\xd0\xc9\xe7?\x02\x00\x00\x00\xae\x00\x00\x00\x04\x15Y#'
 b'.\x9cV~:8e17\xe2\xd9H%\xc9\xe3\x82\xe3\xd50\x95\x8f\n\x85\x16=1<G'
 b'\x8aE\x1a\x00\x88\xd7Zw\x93$\x1eV\xf6\x06\x14\x18\x933B\xe0I9\xed\x11'
 b"'\x95e\x9f\xff\xeeC\x08%j\x94\x1a\x86\xde\xfa\xd0/\xc53r\x1d\xbe.\x8d"
 b'\xaf\x19\x95\xde\xac\t\xe7?>F cJl\x96\x11\xd41>KvO\x81\x00\xa2\x8b\xa6\x8e'
 b'd\x007\xb3\xdb\x1d\x16\xbd\xdb\x17\xb7\xf9:\xcf\xdc\xb1\x89>r1\x04\x7f4\xff'
 b'\xce\xdf\xbc\xb1\xaf\xe0\xb7\x1b\xc8\xf1\xc9\xaa\xaf\xf4\x8c\x04\xbe:~\xa5'
 b'u..\x00\x00\x00x\x00\x00\x00')

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

{'A1': 0.7433853395711192,
 'A2': [{'B1': 5010895859252795013,
         'B2': {'C1': 16300551687095615062,
                'C2': 18649,
                'C3': -14043,
                'C4': -32029,
                'C5': -10781,
                'C6': [-27344, 2703]},
         'B3': {'D1': 2002442120,
                'D2': 1735019411521021075,
                'D3': [-109, 51, 66, -32, 73, 57],
                'D4': [4589, -27353, -24731]},
         'B4': 1915272448824307455,
         'B5': 3506101894,
         'B6': 10173277641955853615},
        {'B1': -8167687346280378506,
         'B2': {'C1': 4604659782082959791,
                'C2': 17982,
                'C3': 25376,
                'C4': 27722,
                'C5': 4502,
                'C6': [12756, 19262]},
         'B3': {'D1': 500937527,
                'D2': -3514221994434642666,
                'D3': [-36, -79, -119, 62, 114, 49],
                'D4': [32516, -204, -8242]},
         'B4': -1024538438664212036,
         'B5': 4105153225,
         'B6': 3347763859589825676}],
 'A3': [5380, 9049, 39982]}

Пример 2

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

(b'\xc6OUZ\x1e\xa2\x95\xe7\xee\x9e\xec?\x02\x00\x00\x00\xae\x00\x00\x00'
 b'\x9b&\xfbi\x97\x10`\x1e\xf9\x01\xe5Q\xc8\x08I\xf2|,\xe9]\r\x08Dz'
 b'\x8f\xe7\xf8\x9e\xaf\xe5-+\xf2s\x1a\x00B1,\x03\xb3\x89\x84m<|\xac\x16'
 b'\xe3@\xbd<Y\xfe\xb5>g\xabV\xa3\x92\xa4\xabWN\x8d\xf4\xed\xc5\xbfT\xa1'
 b'u\xbd\x89\x1e~\xe0\xb7\xbf\xc2t\rwq&(,]\xf9FdB2\xecB\xb6O\x11\xcd4}\x02\x80'
 b'\xe5@[\xf6d\x00\xc7\xe2Op{\xdc\xc4oJmQ1\x88i\xd1\xdfE\x1d\xa9\nl\x05\xce[;g'
 b'\x19\x89d\xf9f\xea\xd6Rm9Q\xfe9\xfc\xe1k\x17\xdd.\x00\x00\x00x\x00\x00\x00')

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

{'A1': 0.8944010279784071,
 'A2': [{'B1': 8354787734852706040,
         'B2': {'C1': 632845791668018784,
                'C2': 62025,
                'C3': 11388,
                'C4': 24041,
                'C5': 2061,
                'C6': [31300, -6257]},
         'B3': {'D1': 53227842,
                'D2': 1633817363805931955,
                'D3': [-29, 64, -67, 60, 89, -2],
                'D4': [16053, -21657, -23722]},
         'B4': -1300259024785398638,
         'B5': 2706685893,
         'B6': 13814757214265130357},
        {'B1': -694890363059274444,
         'B2': {'C1': 3181835405507785922,
                'C2': 63837,
                'C3': 25670,
                'C4': 12866,
                'C5': 17132,
                'C6': [20406, -13039]},
         'B3': {'D1': 1884283591,
                'D2': 3553741747442211963,
                'D3': [-120, 105, -47, -33, 69, 29],
                'D4': [2729, 1388, 23502]},
         'B4': -1556282411017738437,
         'B5': 963465942,
         'B6': 15931320825189891665}],
 'A3': [9883, 27131, 4247]}

Вариант №36

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'ZIP\x8f\xdf\x9f\xf1\x00\x00\x00O=\x88\x88>\xbf\xd8.lO&\x86\xb9->\xcd#U'
 b'\xa0x\xba\xc5N}\xfa>\xd6\xd13\xb4N>\xc7h\xa6P\x1b\x18/\xad}\x8aI!\xc6\xac'
 b'\x16~\xdau!\xcb\xf6\xde)K\xa8I\xf1g\xf5\x00\x00\x00\x0b\x00\x00\x00)\x00'
 b'\x00\x00\x02\x00\x00\x00G\xca\xa9\x81\x12\xf7\xfe\t;\x92?\xef4lO\xe1\xdc$'
 b'?\xe4\x99\xab~\x92I\xd6\xbf\xe9\t/\xf9\x0e{:\xbf\xefU\x86Y\xd1\xab4'
 b"\xbf\x8c\x95\xd7\xf3\xf3\xf1\x00?\xec\xcfE?'\xceXc")

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

{'A1': 2413797361,
 'A2': {'B1': [{'C1': 0.06666611135005951,
                'C2': -4622893974776543559,
                'C3': [45, 62],
                'C4': [14781752549668734286, 9077637091272406094]},
               {'C1': 0.38947027921676636,
                'C2': 5772233940458637897,
                'C3': [33, -58],
                'C4': [12400238100744358902, 16008409536632285173]}],
        'B2': {'D1': -54, 'D2': -6232679552975815790},
        'B3': [0.9751493034554,
               0.6437585327242299,
               -0.7823715080629434,
               -0.9791900400426585,
               -0.01395767892108113,
               0.9003015740876874],
        'B4': 99}}

Пример 2

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

(b'ZIP\xb1\x81H\xce\x00\x00\x00O>\x06\x04W_`\x80\xc3\xa4\x1d\xd2\xfay'
 b"\xd4'\x9b\x86\x87\x10{\x1f\x0f\x1a\xb9\xa3B\xa5`\x90\xb7?4\xb8\xc9\xbc\xd3D"
 b"T\xe6\x99TU\xfe3\xed\x15VyyLh$\xac\x0epr\x8a^\xc5'\x00\x00\x00\x0b\x00"
 b"\x00\x00)\x00\x00\x00\x02\x00\x00\x00GS\xf9\xeb'Z\xec\x1bf\xb8\xbf\xe0\xb8-"
 b'Y%hN\xbf\xed\xaf\x9f\xfd\xd4\xa8\xdc\xbf\xeap\xd0\x01\\\xc6\x16'
 b'\xbf\xd9\xfc\x98\x15\xa3\x0b\x14?\xe2\x7f=\xb3\x14~N?\xef!\xba~b\xfc\xa4Q')

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

{'A1': 2978040014,
 'A2': {'B1': [{'C1': 0.13087593019008636,
                'C2': 6872634609127772922,
                'C3': [121, -44],
                'C4': [2854022703524552463, 1925749822315335863]},
               {'C1': 0.7059445977210999,
                'C2': -4840450043056401323,
                'C3': [-2, 51],
                'C4': [17083655841225926692, 12397970461447603495]}],
        'B2': {'D1': 83, 'D2': -438213267276732744},
        'B3': [-0.5224825612197124,
               -0.9276885945921793,
               -0.8262710596665694,
               -0.4060421191499455,
               0.578032350316741,
               0.9728672474374389],
        'B4': 81}}

Вариант №37

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

Поле Описание
1 Массив char, размер 5
2 Структура E
3 int32

Структура E:

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

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

Пример 1

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

(b'TKY;)\x7f\xb7\xde>\xee\x84\xec?\xc5\xc0n\xc9ol0O\x89\xc0\xbf\xec\x1dMT'
 b'\x92\xc5\x0e\x06%\x9b?\xeb$\xb8\x98\xc0\xca$Gu\xb8\xbf\xe4v\xd1\xb9J\x7f'
 b'\xf6i\x97\r\xbf\xe98\x08\xedK\x14`E\xf9\xc8\xd1\xf1\xb3\x00z\xb3N\xea\xa8'
 b'td\xa0AQ\xd7\xf9Y\x94Y\xed\xa0\xea\xbc\x83\xcb\xc8i\xfft\x80d\xcem@7+.'
 b'p\x03e\x85\t\\\xa7\t\xa1\xbf!-\x1f)\x9evt\x1frnejl\x07\xb7\x18\x1f\xd5'
 b'\xc8\x14\x00\x00\x00\x03\x00\x00\x00\\\x00\x00\x00\x03\x00tMRs\xf1')

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

{'A1': 4263078949967294084,
 'A2': {'B1': [{'C1': 236, 'C2': 0.16993508182244588, 'C3': 20361},
               {'C1': 192, 'C2': -0.8785769130537646, 'C3': 1573},
               {'C1': 155, 'C2': 0.8482325538119011, 'C3': 18293},
               {'C1': 184, 'C2': -0.6395043009724748, 'C3': 27031},
               {'C1': 13, 'C2': -0.7880901941904419, 'C3': 17913}],
        'B2': 51409},
 'A3': -3661,
 'A4': {'D1': 'rnejl',
        'D2': {'E1': 1975,
               'E2': 24,
               'E3': 534104084,
               'E4': [14441354555975585389,
                      4627214620594234757,
                      674597704008933677],
               'E5': [7977, 40566, 29727]},
        'D3': 1297249265},
 'A5': -5526221683508862911,
 'A6': 5897456400201280928,
 'A7': 3938223051}

Пример 2

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

(b'TKY\x8f\xd4\x16\x8f\xe5\x82\x19r\xa4\xbf\xe3\xf5\xaa\xd4x\x92\xacO\xb1-?'
 b'\xe4\xb03\xabl\xea\xe2\xc4\xc5\x91?\xe2\x85j\xe6\xafC\xec\xaf\x9e'
 b'\xbb\xbf\xdfKl\xe0\x80_\x1c\x07\xfe\x81\xbf\xea\x8d\xb11\xfcN\xca'
 b'\x1c\x95\xb5{\xd2\x05\x00t\xb16\xe2w\x90\xd3\xee\xbb\x11\x16j\xf7\xc3g\x1b]'
 b'=\xa1Z\xe6\x13L\x9c\xb6[\xaa\xcc\xd4\xe9X\xdeyxx\xbah\x98+\x81\xdd8\xd2[\x06'
 b'flamc\xf5\x94\xdbq(1\x9a\x00\x00\x00\x02\x00\x00\x00\\\x00\x00\x00\x04'
 b'\x00l\xde\x83\xab=')

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

{'A1': -8082810623936554638,
 'A2': {'B1': [{'C1': 164, 'C2': -0.6237386846374497, 'C3': 20401},
               {'C1': 45, 'C2': 0.6465090129998681, 'C3': 50373},
               {'C1': 145, 'C2': 0.5787863259848769, 'C3': 44958},
               {'C1': 187, 'C2': -0.48897859500856256, 'C3': 2046},
               {'C1': 129, 'C2': -0.8297964073448949, 'C3': 7317}],
        'B2': 46459},
 'A3': -11771,
 'A4': {'D1': 'flamc',
        'D2': {'E1': 62868,
               'E2': -37,
               'E3': 1898459546,
               'E4': [1390658691986541780, 16814433822081333864],
               'E5': [38955, 33245, 14546, 23302]},
        'D3': -561796291},
 'A5': -5677101277095137605,
 'A6': 1231289160500190045,
 'A7': 1033984742}

Вариант №38

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'FSAMXt\x9bb\xd86\x13\xad$\xd8\xec\xbf\xc4\xfe \x8d\xf4\xd5ou\x08\xb1\x08K'
 b'W\x00\x00\x00e\x00\x00\x00s\x00\x00\x00Fr\xd7\xfaq\xcf\\9\xf2\x11\xd5\x99'
 b'\xb0\xd6\x06>G^\xc89\x99\xdb\x9b\xe3n\xc6\xd1\x9e!\x1b\x17\x98\xf7\xa1O&'
 b"\x8b\xc7\xbf\xc6\xb3\xfa\xb2\xa7'8\xc6\x05\xa48:\x19b\xd4\xe7\x9da#\xa2\x0f"
 b"\x07qcK\\\xaa\xc6\xf2\xcb^\x03\x1b\xc3\x8d'\xe8{\xf3\x87C9\x07 \x80\n\xfad%"
 b'\xb2')

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

{'A1': 1654355032,
 'A2': -0.9013846760151081,
 'A3': {'B1': -60,
        'B2': 609516289300177150,
        'B3': 2225,
        'B4': 75,
        'B5': {'C1': [{'D1': [976790533, 3889455641, 2720227741], 'D2': 1807},
                      {'D1': [1548444529, 3421685418, 3273327454], 'D2': 10125},
                      {'D1': [2280881128, 537344323, 1694108288],
                       'D2': -19931}],
               'C2': -86543802,
               'C3': 962383729},
        'B6': 242,
        'B7': [54545, 45209, 1750]},
 'A4': [18238, -14242, -26311, -25637, 28387, -11834, 8606, 5915],
 'A5': -0.18393401039423618,
 'A6': 14283209819421324230}

Пример 2

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

(b'FSAM\xe3 x\x81H\x82:\x88\xcbz\xd6\xbf\x14;\xfb\x96@\xba"9c\x03\xf5)'
 b'W\x00\x00\x00e\x00\x00\x00s\x00\x00\x00\xbfa^\xecF\x12\x9e\xf9\xc3\x87/^'
 b'\xad+\x939\xa5\xa4\xdab\r\xff\xd6M:\xba;\xefc\x94\xbd\xf6\\Q\\\xdc\xba\xed?t'
 b'\x94\xc3\x8b\xdf3\xf9\xe1\xff\x85\x97\xe0vx\xb1\x1d\x9e\x8f\x05\x87\x7f'
 b'\xdeu\xd6!\x91b\xf7"\xf4\xa7w\xb9\xb4\x95\x80\x05\xc6)1\xfc\xb4=r\x17'
 b'^\xf8\x18\xe3}')

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

{'A1': 2172133603,
 'A2': -0.35124481490678194,
 'A3': {'B1': 20,
        'B2': 7149784066770271035,
        'B3': 62723,
        'B4': 41,
        'B5': {'C1': [{'D1': [3768026623, 498169974, 2265288606], 'D2': -8577},
                      {'D1': [2434913909, 4095932258, 3032053671],
                       'D2': -32619},
                      {'D1': [824821253, 1916646652, 418930199], 'D2': 32227}],
               'C2': -329358913,
               'C3': 4187886150},
        'B6': 195,
        'B7': [12167, 44382, 37675]},
 'A4': [-23239, -9564, 3426, -10497, 14925, 15290, 25583, -17004],
 'A5': 0.9290601542551531,
 'A6': 16283102962950313076}

Вариант №39

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'COG\x00\x05\x00\x00\x00\x19r\x00\x02\x00\x00\x00-\x95\x00\x00\x00'
 b'/\x00\x00\x00X$:\x8d>fc}xT\xa1\xbe\xd4y\x17\xb0\xab\xee0\r\xaayi%\x82?].'
 b'\xff>\x10\xc7\xad\xa7\x06Yg\x91\xac*\xb6\xd6\x97T\x965o\x9d\xfb\xca)f'
 b'\xbe\xb6\t\xb4\xe8\xe8 \xf6e\xb5\xee\xb2\x8eg\xbf\xbb!\x04Dy\xa40n\xaa'
 b'\xa6\x1c\x96\x00\x03\x00R')

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

{'A1': [{'B1': 9274, 'B2': -29378},
        {'B1': 26211, 'B2': 32120},
        {'B1': 21665, 'B2': -16684},
        {'B1': 30999, 'B2': -20309},
        {'B1': -4560, 'B2': 3498}],
 'A2': {'C1': 114, 'C2': 'yi', 'C3': 149},
 'A3': {'D1': 2702792395828706832,
        'D2': [-14419, -22778, 22887, -28244, 10934, -10601],
        'D3': 84,
        'D4': 38453,
        'D5': {'E1': 28573, 'E2': 4224330086, 'E3': -0.35554277896881104},
        'D6': 59624},
 'A4': {'F1': 36455,
        'F2': -0.10597254440075754,
        'F3': 1856677404,
        'F4': 150,
        'F5': [8438, 26037, -4430]}}

Пример 2

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

(b'COG\x00\x02\x00\x00\x00\x19#\x00\x02\x00\x00\x00!\xfe\x00\x00\x00'
 b'#\x00\x00\x00Pd_\x1a\xeff\x11\x0c\x9fntx*\x0c\xed\xc3\xea5\xf8\xf4k`v\xc9'
 b'\xe6\xba\x03\xb9H\x8b\t\ty\xca\x8fC\xe0w\xe4\xa0\xbf1\xc2\xcf\xb0\xbc\x07R'
 b'\xa3\xc6$\xbbn\x9fV\x1e\xd4\xa2?\xe8\xd8Y_\x17\x9fV\x80\x10C\xa2p\x00'
 b'\x05\x00F')

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

{'A1': [{'B1': 25695, 'B2': 6895}, {'B1': 26129, 'B2': 3231}],
 'A2': {'C1': 35, 'C2': 'nt', 'C3': 254},
 'A3': {'D1': 8658747448906888696,
        'D2': [-2965, 24694, -13850, -17917, -18104, -29943],
        'D3': 9,
        'D4': 31178,
        'D5': {'E1': 36675, 'E2': 3765953696, 'E3': -0.6943787932395935},
        'D6': 45244},
 'A4': {'F1': 54434,
        'F2': 0.7764098031302449,
        'F3': -2146417758,
        'F4': 112,
        'F5': [1874, -23610, 9403, 28319, 22046]}}

Вариант №40

Задача №12

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

Структура A:

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

Структура B:

Поле Описание
1 float
2 Массив структур C, размер 6

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'YJV&\x00\x05\x00$?\xe3\x8bc\xd6G\xcc(\x00\x00\x00)-\x82\xcb\x16\x04\x1f\xf9['
 b'I\xcd~\xfftg\x00Qyklsb\xbfh\xe2-=k\x9b\x1b\xdb\x1c?\\\x1c\x89\x82'
 b'\xf5\xbe\x91\xc5\xa7OZ?9\xedF}\xf0\xbe\xeb\xc3a\xd1\xb1\xbf\x01\x08\xdc\xa3'
 b'\xf1\x15\x1ebF\tk\x96\xe9\xf2B\xa7\xdb\xd8L\xad\x88\xf0{\xc2,\xa5\x806'
 b'\x04\x1e\x8b\xa5\x80w\x9fX\x04Ne\x08k\xff \x89\x9b6\x1d\xa9\xa4%<\x7f'
 b'\xda\xaaM&\xc3\x19\xf0\xee\x00j\xf0%\xdc<4\x93Y\x12\xfeD6\xab\xf4)\xed\xa7e2'
 b'\xdb\xac\xaf\xb1U(\xce')

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

{'A1': 'yklsb',
 'A2': 0.6107653794446195,
 'A3': {'B1': -0.9097011685371399,
        'B2': [{'C1': 0.05752096697688103, 'C2': 56092},
               {'C1': 0.8598104119300842, 'C2': 33525},
               {'C1': -0.284711092710495, 'C2': 20314},
               {'C1': 0.7262767553329468, 'C2': 32240},
               {'C1': -0.46047499775886536, 'C2': 53681},
               {'C1': -0.5040414333343506, 'C2': 41969}]},
 'A4': 763546390,
 'A5': 297230270905286399,
 'A6': 'tg',
 'A7': {'D1': 5406,
        'D2': 7081357821784748610,
        'D3': 167,
        'D4': [-37, -40, 76, -83, -120],
        'D5': [17328657488249107972,
               2201034814081947652,
               5648930567541000603,
               3899459374837170138,
               12271507179050167808,
               7705700590264030041,
               1368606338371037677,
               12062103096058163541],
        'D6': 40,
        'D7': -50}}

Пример 2

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

(b'YJV&\x00\x05\x00$\xbf\xd4\xdebl;\xd0\x94\x00\x00\x00)\xad\xdf{t'
 b'\x08\x05\x16\x97z\x97\xa9\x9awa\x00Qzdfln<\xbe\xae\x1d\xbfSoO\xfa\xf6\xbd'
 b'\xd5&\x83\xf0X\xbfa\x8c\n9\x95>\x99\x81H\xdb\x93?Q\x03\x1a\n\xf6\xbe'
 b'+\xc7k\x87ua\xc6[\xbd\x93\x8d\x91ls\xe4\xcd\x88\x13$\xeatY6\x87\x9f\xeaQ\xf5'
 b'\xdd\x06\x94\xabDb\xb1\x16F\xb6[\xa9\xe4(TC\x0c\xb6\x173\x7fY\xbew'
 b'\xce\xaa\xea\xb8\x8df\x19\xbd2\xc7\xb5ja\x07\xa9\xee\xaa\xd2?B\xaf\x93<*'
 b"'\x07\xa3x<=\x8d\xfd\x05\xb5\x86")

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

{'A1': 'zdfln',
 'A2': -0.32607327050869483,
 'A3': {'B1': 0.02327638305723667,
        'B2': [{'C1': -0.8259171843528748, 'C2': 64246},
               {'C1': -0.10407736152410507, 'C2': 61528},
               {'C1': -0.8810430765151978, 'C2': 14741},
               {'C1': 0.29981446266174316, 'C2': 56211},
               {'C1': 0.8164535760879517, 'C2': 2806},
               {'C1': -0.16775290668010712, 'C2': 34677}]},
 'A4': 2917104500,
 'A5': 577892967039609242,
 'A6': 'wa',
 'A7': {'D1': 25030,
        'D2': 6610602064289231844,
        'D3': 205,
        'D4': [-120, 19, 36, -22, 116],
        'D5': [6428474639018751453,
               474192170982643270,
               13140283135177802508,
               13121012661426747342,
               12315859048440905010,
               14390525149305237162,
               15149900993354541607,
               550415779595418885],
        'D6': -75,
        'D7': -122}}