ИВБО-06-22

Вариант №1

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'PNECC\x02\x00v\x00\x00\x00\xea\xe8\x9f\xac\xab\xa0\x16di\r >\x9e'
 b'\x01\xdc<\x0e\xf5oj{\x05\x8eYr\x072\xd2Edx\xa5\xa0\xddHQ\x1d\xc8H\x9a\x01'
 b'\x11\xde\x06oY0\xe4p]x\x00\x8a\x9fv\xbf\xe7\xaf\xb2\xbe}Jv>\x98\xba^\xbe\xc9'
 b'\xe2\xa4\xbe(\x85H?\xb5\x8d\xea(\x01\x1b\xcb\xc1\x17\xa4~\xe9G^\x17\x85\xcf'
 b"'\xba\x9c\x8b\x18u\x8f\xcf@Mc\xdf\x04\xcaox`p\xac\x98\xfaTD\x95"
 b'\xe4\x9e\xc5\xe8\xd6\xbf\x15\x82A(\xd9\x15\xd0\xac\x91I\xe8')

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

{'A1': 'ox',
 'A2': 7212128512476440810,
 'A3': 0.15630115568637848,
 'A4': [{'B1': 1021051294,
         'B2': 1785722126,
         'B3': 123,
         'B4': 5,
         'B5': 7225412289500961166},
        {'B1': -576674440,
         'B2': 3357364552,
         'B3': 72,
         'B4': -102,
         'B5': -2004003500788412159}],
 'A5': 112,
 'A6': 93,
 'A7': {'C1': {'D1': 2561437792,
               'D2': 21754,
               'D3': -0.35795727269063016,
               'D4': 33301,
               'D5': 5301208246111512641,
               'D6': 232},
        'C2': [-0.9633718729019165,
               -0.3489982783794403,
               0.24051852524280548,
               -0.21750867366790771,
               -0.3220427334308624,
               0.7832818031311035],
        'C3': [-4482459312321819211, -8856506479247711209],
        'C4': [10191, -25414, 6283, -28811, 16591],
        'C5': 81748813},
 'A8': 202}

Пример 2

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

(b'PNECC\x02\x00v\x00\x00\x00nK\x04\xff\xc4\xbe\x9e\x00\xd4ko\xbe\xf6'
 b"\xb6\x8d\xe9)\x9f\xe1\xc0P\xe6B\x1b*\x13'\x8bt}\xbb\xff\x8a\xd6\x8a\xf0\xb6"
 b'\x8d\x95\x1et\x97 \x19c\x9dHm\x8fwx\x00\xc8\xc3\xe2>\x0c\xb1(\xbf>'
 b'\xeb.\xbf\xc3\xa4/?\x00\x0fy\xbf\x07\xe5\xfa\xbe\x13\xdb\xba\xad\x9fvR-)'
 b'c\x9d\xad\xaa\xa3\xcf]4O\xf2HtN+\xd5F\x00Dq\xa9\x17\x8egmi\xa5J\xd1'
 b'\xb8\xc2\xa8\xea\xe2\xb6\xff\xfc\xdd\xbf\x86\x00A\x02 \xd0]\x00T-\xe1')

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

{'A1': 'gm',
 'A2': 44682799621622638,
 'A3': -0.23380976915359497,
 'A4': [{'B1': -376588554,
         'B2': 3236011817,
         'B3': 80,
         'B4': -26,
         'B5': 9040003351980940098},
        {'B1': -695533637,
         'B2': 2377576586,
         'B3': 149,
         'B4': 30,
         'B5': 7874716997406201716}],
 'A5': 143,
 'A6': 119,
 'A7': {'C1': {'D1': 3511330153,
               'D2': -15688,
               'D3': -0.46856682643889735,
               'D4': 134,
               'D5': 3266236032674169409,
               'D6': 225},
        'C2': [0.4428999423980713,
               -0.6589515209197998,
               -0.6832770109176636,
               0.6861078143119812,
               -0.9728851318359375,
               -0.49002858996391296],
        'C3': [3265803107983612691, 6759801519158944553],
        'C4': [20276, 18674, 20084, -10965, 70],
        'C5': 396980548},
 'A8': 142}

Вариант №2

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'kTBT:\x00^\x00\x00\x00\xa3\xdd\xe4q\x8d\x00\x00\x00\x1c\xaf\xe2`\xcch'
 b'\xe0\x88\xf7"7\xea\xed\xff\xa4\x97lj\x14\xd8\xe7\xfb\xe8\xb6\x8d\x96'
 b'\x13\xeb\x16\x00\x00\x00\x1e\x00\x00\x00&\x00\x00\x00H\xa4\x0c\x80\x87d'
 b'\xe9?acrzp\x08\x15\x9f\xba\xb1\t\xdee\xf8\r\xbd\x00\x02\x01\x18\x03\x00'
 b'.\x00\x00\x00\xc2!\xc0\x12\xad|\x14>i\x066\xe4QI\x9e\xe3R\xfd\xbb4'
 b'\xc5\xe4\xbe\x02\x00a\x00\x00\x00\x96\x9b\xa8\xb3\x92,\xd7\xb3\xdd:\xe3'
 b'Hm\xe6\x81|;$4\x9f\xc3\xe1\x93>L\xf6\x13\xc4S\xe7\x00fEc\x00(\xa0%v'
 b'\xff\xc8\xe2\xbf\x05\x00\x00\x00y\x00\x00\x00')

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

{'A1': {'B1': 0.7935216427769172,
        'B2': 'acrz',
        'B3': -2447229507408164752,
        'B4': 1729665934082046053,
        'B5': [{'C1': 2296408268, 'C2': 3929481975},
               {'C1': 2544173037, 'C2': 3625216620},
               {'C1': 3068722151, 'C2': 3943929485}],
        'B6': 8642},
 'A2': {'D1': 4800, 'D2': 173},
 'A3': 1910824355,
 'A4': {'E1': 0.28883180022239685,
        'E2': 76,
        'E3': 1405359094,
        'E4': 1164312807,
        'E5': {'F1': -7041006501816276674,
               'F2': -1141026077,
               'F3': -0.4468170404434204,
               'F4': [124, 20]},
        'E6': -0.5870358760412318,
        'E7': [-1280795754, -1277743982, 1222851293, 2088887917, -1623972805]},
 'A5': 1625468700}

Пример 2

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

(b'kTBTR\x00v\x00\x00\x009\xdf)`\x9e\x00\x00\x00\xd3-\xb02G2<\xc8\xa3B#H>Y'
 b'p\x9dC?^eM\xa2\x12\x00.\xef\xe1\x0c"\x01\x1f\xd1[\x19j\xf4{\x95\xcd\xd7o\xd0'
 b'Y\x08\x16\x00\x00\x00\x1e\x00\x00\x00&\x00\x00\x00.\x00\x00\x006\x00'
 b'\x00\x00\xf0$\xb1p\xc1\xe5\xdd?kwdsi"7\x9a\xbcK&\x8f\x9b\x12\xb4\xd8\x9f\xc3'
 b'\xf8\x97\x05\x00>\x00\x00\x00z\x7f\x823\xa0k\x18\xebv\xd0\x9dl\xf9B\x90I'
 b'\xaf\xe2\x10/|;\xcf\xbe\x03\x00y\x00\x00\x00D\xc1\xdc\xd3P3i\xb5t\xd7'
 b'\xeb\xbcK\x14\x8a\xbd;"\n\x8e\xc1\t\xc8a\xfc|\x00\xf8\xdfm@\xb7\xeb\xc4'
 b'\xbf\x03\x00\x00\x00\x92\x00\x00\x00')

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

{'A1': {'B1': 0.4671481705195921,
        'B2': 'kwds',
        'B3': -8131728803757612439,
        'B4': 10950717585254257307,
        'B5': [{'C1': 3359388231, 'C2': 1210270371},
               {'C1': 2641385790, 'C2': 1700675395},
               {'C1': 1221197, 'C2': 216133422},
               {'C1': 3508470050, 'C2': 4100594011},
               {'C1': 3620574587, 'C2': 140103791}],
        'B6': 32634},
 'A2': {'D1': 13186, 'D2': 160},
 'A3': 1613356857,
 'A4': {'E1': -0.06742151826620102,
        'E2': 59,
        'E3': 3247311394,
        'E4': 4234266633,
        'E5': {'F1': 5300810400451645558,
               'F2': 789635759,
               'F3': -0.4047507047653198,
               'F4': [107, 24, -21]},
        'E6': -0.16344347616154642,
        'E7': [-740507324, -1251396784, -1125394572]},
 'A5': 850406867}

Вариант №3

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'JIGN\x0c8\xabI"\x03\x003\x00;o\x00\x00\x00_ur\xb2U8N\x16\x06w|\xbf\x90\x13'
 b'\x8c\r-\x16\x8d\xb1\x02\xf3b\x0eYf\x01_\x12\xce\xcd\xe4\x14\x02\x00&\x00]'
 b'\xde\xaa\xa3\xa8;\xf0h\x07\x00(\x00d\xe7th{VxD\x04\x00/\x00\xe0\x85\xb9\xc5D'
 b'\t\xe8+\xac\xd7\x02\xe6`F\x13<(x\xd8@\xfb\xe4\xb8f$(\xe6\x8a\x1b'
 b'\x8c\x8b\xf9\xde\xb0Z\xa0\x8c\xd9\xee?yQ\x8a#\xe7[\x84\x96\xcb\xb2\\6\xbe'
 b'-\x03\x00W\x00\xbb\x81%\xa1')

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

{'A1': 575253304,
 'A2': [{'B1': [2, 243], 'B2': 7561609369841491549},
        {'B1': [98, 14, 89, 102, 1, 95, 18], 'B2': 4933788479817836388},
        {'B1': [206, 205, 228, 20], 'B2': 3163788929207469536}],
 'A3': {'C1': 59,
        'C2': {'D1': 0.9640563136977354,
               'D2': [20857, 9098, 23527, -27004, -19765, 13916, 11710],
               'D3': [4328881048822929324,
                      7401917755359262760,
                      17981619987129182244],
               'D4': 2703589819},
        'C3': 1607284057735066975,
        'C4': -0.9861911535263062},
 'A4': -5652837574523481200}

Пример 2

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

(b'JIGN\x0c4\xfeQ\x13\x03\x004\x00\xa2h\x00\x00\x00\xc2D\xcd>\x02\x1ed\xb09\xab'
 b'\x1f\xbfv\xeaY|\xb2\xef\xa7\x81\xfe\xd2\x8f\xdc\xc9\t\x16|R\x1aW|\xabU'
 b'\x05\x00&\x00-\xb2\x92\x8a\xed\x8d\x99\xcc\x04\x00+\x00\xa6\xcf\x8b\x7f'
 b'\x90\xa3\x9bI\x05\x00/\x00\x83\x8e\x91\xd0\x98S \x9bu\x91\x10\xdc\xa0\xe9te'
 b'\x9f\xe3[B\r\x9d\x912\xe0\xe7\xf0,\x7f\x03\xcf?\xda\xf7\xf1T\\\xc3\x9b['
 b'\xbal@)\x96\xaf\x02\x00X\x00\xb3\xb0Xs')

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

{'A1': 324140596,
 'A2': [{'B1': [254, 210, 143, 220, 201], 'B2': -3703773167163887059},
        {'B1': [9, 22, 124, 82], 'B2': 5304012827169378214},
        {'B1': [26, 87, 124, 171, 85], 'B2': -7268717882776646013}],
 'A3': {'C1': -94,
        'C2': {'D1': 0.24229421324144962,
               'D2': [-2086, 21745, -15524, 23451, 27834, 10560, -20586],
               'D3': [7310724972225270133, 3643866253792895903],
               'D4': 1935192243},
        'C3': 12710317043338790082,
        'C4': -0.6237064003944397},
 'A4': -9104044571836683658}

Вариант №4

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'DJZ\x03\x00\x00\x00\x1c\x00\xfe\x02\x00O\x00\x86F\x80j\xe8|x\xff\xfe#'
 b'v\xdeW\x00bum,/\xd9\xecV<9\xf2\xea"\xf4^\xd7\xdc\xd6\xd1\x02\x00\x00\x00\x1f'
 b'\x00\x00\x00f|\x02\xd1a\xb6\xa1\x0fd\xcb\xe7\xf8a\xd6\xe0\x19\x02'
 b"\x00\x00\x007\x00\x00\x00#\x00\x00\x00;\x00\x00\x00\xcb']k\xd6\x15\x80\xa7)"
 b'\x89\xec\xff\xd2ER\xff\xe8\xc3:\xb5\xf4H\xae\xc79\x9e3?')

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

{'A1': 'bum',
 'A2': {'B1': -2,
        'B2': [{'C1': 4063837270,
                'C2': 15120515616512156394,
                'C3': [12076, -4903]},
               {'C1': 262256225,
                'C2': 1864725962007497572,
                'C3': [31846, -12030]}],
        'B3': 1786791558,
        'B4': -2416704571922940696},
 'A3': {'D1': [1801267147,
               -1484778026,
               -1275607,
               -11385390,
               -1254439960,
               -944879372],
        'D2': 0.7016330361366272}}

Пример 2

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

(b'DJZ\x03\x00\x00\x00\x1c\x00\x89\x02\x00W\x00D\xac^0c\xfc\xf2\xc5\x85\x8d'
 b'op_\x00lcw\xda\xdev\x9d\xf31\xf2Q\x93\x96\xbe|F\xa6\x92\xec\x97\xddT\x8c\x04'
 b'\x00\x00\x00\x1f\x00\x00\x00\xb4\xa8\xf1\x03\x9d3\x8dn\xad\n\xfe\x18\x0e'
 b"F\xd3\xfaK.\xb1\x9e\x04\x00\x00\x00;\x00\x00\x00'\x00\x00\x00C"
 b'\x00\x00\x00\x9f \xbf\x0e\xa1i\x83-F\xf6k\x82\x82\xa7\x85W&\xb2rg\t{/E\xc6'
 b'\x86??')

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

{'A1': 'lcw',
 'A2': {'B1': -119,
        'B2': [{'C1': 2092865171,
                'C2': 10111950707932440134,
                'C3': [-8486, -25226, 12787, 20978]},
               {'C1': 419302061,
                'C2': 11434971832735974926,
                'C3': [-22348, 1009, 13213, 28301]}],
        'B3': 811510852,
        'B4': 8101849860354014307},
 'A3': {'D1': [247406751,
               763586977,
               -2106853818,
               1468376962,
               1735569958,
               1160739593],
        'D2': 0.7481502294540405}}

Вариант №5

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'LPEC\xc4[\xd4\xae:\x8c4\x86\x00\x00\x00\xebN\xb8K\xb2\xed\xf2@F\xc1B\x02\x00'
 b'\xac\x00\x00\x00#\x0c\x15F\x02\x00\x00\x00\xb0\x00\x00\x00|p\xe3\n[\x0b\x00+'
 b' \x9a\xcaL\x1c\xec\xdc\xbf6nn\x99\xf47/`\r\x82\xa8@8xE\x06)T\x11\xee'
 b'?X\xec\xb8\xdb\x98p\xd0N\xe1\xb1\x02\xb4?XZd4\x10"\xce?<\xe4\x19W=u'
 b'\xea?z\x01\xd8\x8fk\x86\xec?|\x96\x8e\x92\xe6\xce\xe5?|"\xc9Fx\xa3\xec?i\xd2'
 b'X\xbf,\x00A\x00\x01,\x06\xbf\xac>o>ak\x03\xbf\xf2p\x06\x00V\x00y\xb6\x9c\xeb'
 b'^\xfb\xc59\xd8?A*\xd4\rKv\xfc\x9d|\xc0E\x1e}\xa2')

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

{'A1': 3786465909273248835,
 'A2': {'B1': {'C1': -0.8469606041908264,
               'C2': [{'D1': 3098489029283508348,
                       'D2': -0.4519110441127925,
                       'D3': -1720816074,
                       'D4': 244},
                      {'D1': 4053424941157068599,
                       'D2': 0.9396153260478703,
                       'D3': -608637864,
                       'D4': 152}],
               'C3': [-0.5241089463233948,
                      0.2336375117301941,
                      -0.5133572220802307],
               'C4': {'E1': 28914,
                      'E2': [0.07816612005882617,
                             0.23541452940181062,
                             0.8268114758676641,
                             0.8914087113808329,
                             0.6815064299050415,
                             0.8949548132450924],
                      'E3': 46713},
               'C5': 0.37852620647361745,
               'C6': 10817},
        'B2': 20203,
        'B3': 184,
        'B4': 4075663947,
        'B5': 17984},
 'A3': 17089,
 'A4': [3540, 30283],
 'A5': 1175784483,
 'A6': [3229392380, 2726108741]}

Пример 2

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

(b'LPE\xa22\xeff\xd7\x05\xca\xba\x86\x00\x00\x00v^\x04c\x19\r\xb0\x1f\xea'
 b'z\xe5\x02\x00\xac\x00\x00\x00\xbbY\nl\x02\x00\x00\x00\xb0\x00\x00\x00'
 b'\x89\xdcj\xb6W[\x9f\xc2\x1c/mQ\xed^\xee\xbf\xe0\xc0E\xbb\xbc\xa3\xd1$'
 b'\xe0\\\xf3n\xc1\xa8)-\xda\xa7\xe5\xd2\xbf\x19\xb4\x05\x10\x99\x90-\xe3[\x8br'
 b'\xef\xbf\x04\x00x\x1b\x0c\xfd\xe7?,\xf4W\xf8:\xa8\xe5?\xe0\xc1\xef2\x03\x00'
 b'\xd4?J\xfe\xee&\xef\x97\xeb\xbf\xc8\xd0\x00\xfd\xa2\xd2\xcd\xbf\x12\xd7'
 b'\x1b\xbf,\x00A\x00\xfc\xfdj?0\x9d\xd7>\xe39\xcc>\x0b\xa0\x06\x00V\x00'
 b'\xbd\x91\xbc\x91B|\xf5\x18\xeb\xbf\xa1!@\x8e\x8c}\xe7r2\x05hP`\xca')

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

{'A1': -4987167214656343390,
 'A2': {'B1': {'C1': -0.6087504625320435,
               'C2': [{'D1': 14024028196935752841,
                       'D2': -0.9490877714501695,
                       'D3': -1153056544,
                       'D4': 188},
                      {'D1': 13938345476981313955,
                       'D2': -0.29526706987658224,
                       'D3': 268809241,
                       'D4': 153}],
               'C3': [0.9179379940032959,
                      0.42112112045288086,
                      0.39887914061546326],
               'C4': {'E1': 40971,
                      'E2': [-0.9827324671436362,
                             0.7496395622729328,
                             0.6767859316311209,
                             0.3125007626940981,
                             -0.8622966537877315,
                             -0.2329906211249464],
                      'E3': 37309},
               'C5': -0.8467967440561135,
               'C6': 8609},
        'B2': 24182,
        'B3': 4,
        'B4': 2953648483,
        'B5': 59935},
 'A3': -6790,
 'A4': [36416, 32140],
 'A5': 1812617659,
 'A6': [87192295, 3395309672]}

Вариант №6

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'LSL\x00\x00\x00\x02\x00@hoohsxhieS$\xf9\x00\x00\x00f\x00\x00\x00'
 b'\x06\x00\x00\x00~1\xf8M<B\xb3\x9e\xa4?\xc5\xfb\xd5\xff\xec\x90\xe8>\xe6='
 b'\xc0\xc1?g\xa1\x8cy\xbfg\xc76\xa9\x00\x00\x006\x00\x00\x00;\xd0r\xf5&'
 b'Y\x91L\xaa\xaa\xac\xbf\xd7\x00\xcaS\xf2\xad\x0f\xa4\xcb\x870g\xe0h&v\x9d'
 b'\x1a>\x00\x06\x00\x00\x00H\xfc?X\xebbd\xf9*\x96\xa8\xf1H\x00\x00\x00\x03'
 b'\x00`\xee\x82\xf41Q\x7f\xdc\x013\x06,\x1b\x1bjrm\xaa\\)\x1e\x90\xc7'
 b"\x0c|n\x87Z\xe1\x18\xe8\x0b\x07\xee\xad\xa2\xa9\xf44}\x94\xc3'"
 b'\xf9\xea\xa6\x93\xbb\xee')

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

{'A1': [{'B1': 0.904808759689331, 'B2': 121},
        {'B1': -0.9053834676742554, 'B2': -87}],
 'A2': 'hoohsxhi',
 'A3': 1699947769,
 'A4': {'C1': [3497194790,
               1502694570,
               2863448023,
               13259762,
               2903483595,
               2268096480],
        'C2': 252,
        'C3': 0.8473416566848755,
        'C4': 100,
        'C5': -1750,
        'C6': -1767313080,
        'C7': [26662, 30365, 6718]},
 'A5': [17186567620657142785,
        3676674640730288749,
        12275731895559851132,
        7964434388860013319,
        17198581402828045716,
        14062483147700026350],
 'A6': {'D1': 3600712823295155876,
        'D2': 0.1717479228619887,
        'D3': 0.4496898651123047,
        'D4': 193}}

Пример 2

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

(b'LSL\x00\x00\x00\x02\x00@lnoawibi2\xa4\xcf\xf3\x00\x00\x00f\x00\x00\x00'
 b'\x04\x00\x00\x00~\xee\xb8\xd3\x08\xb7\x1fCc\xbf\xc7\xa1\x90\x84\x81F'
 b'8\xbe\xe2\xd9J+\xbeK\xfa\xad\xeb>{\xfc\xfc\xad\x00\x00\x006\x00\x00\x00;'
 b'\xb5\x14SV@\xab\xadSm%CX\x0bCM\x92y{\xab\xc6HF\x14\x7f\xd6\x90/\x06'
 b'\x12H\x00\x06\x00\x00\x00H\xe0>\x82g\xc2\x94\xb6\xcf\x19T\xb8E'
 b'\x00\x00\x00\x03\x00`\xc0\xc5q\x06\xfeIF\x81\xb6\x1dk\xfc\xe3{Lf\xbehc\xf9hN'
 b'v\x049\x8a\xafBf\xd0\xdd*')

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

{'A1': [{'B1': -0.19919843971729279, 'B2': -21},
        {'B1': 0.24608224630355835, 'B2': -83}],
 'A2': 'lnoawibi',
 'A3': 849661939,
 'A4': {'C1': [3038008150,
               1084992851,
               1831158616,
               188960146,
               2038148038,
               1212552319],
        'C2': 224,
        'C3': 0.25469785928726196,
        'C4': 148,
        'C5': -18737,
        'C6': 424982597,
        'C7': [-10608, 12038, 4680]},
 'A5': [13890632900544120449,
        13122763623119932518,
        13720326187632195076,
        4146319106675629354],
 'A6': {'D1': -1245013262582463645,
        'D2': -0.1846180579182588,
        'D3': -0.44306403398513794,
        'D4': 43}}

Вариант №7

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'LDLm\x0b\xfc\x05&\xe3\x00\x9d\xd1F\x00\x00\x00P\x00\x00\x00Z\x00\x00\x00'
 b'd\x00\x00\x00n\x00\x80^(\xbaWL\x0bV\xc4\xd2\x96uf\xf0\x8b\xa2N\x89\x92}\xcfc'
 b"\xa07\x1d\x02\x00\x00\x00\xa6\x00\x00\x00p\x9e\xd4\xd2'\xfd\x86\x1bn"
 b"\x9a\x1d \x15nB\x18GsI6i\xd8\x1bf]'a\xa3\xda\xaawvk\xf2C\x99P"
 b"\xd6\xc8\xad\xf4\x82\x87\x03\x86\x13t-'3\xa8S\x1f\xf8ub\x1eO@\xcc\xad"
 b'\xae\xa9\xccG\x88U\xbfV*&\xdc\xccw}\xcf2\x11\xe6\xb8#\xb7\x18w\xa4\xa3\x8ciZ'
 b'\xfb\xc8!\xc3$\x80\xf1\x8b\x83\xc1\x93K)\xacY\xda"\x8d\x07\xe0\xa0-')

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

{'A1': {'B1': 637926411,
        'B2': 3516727523,
        'B3': [{'C1': 27, 'C2': 1748080642385353326, 'C3': 71},
               {'C1': 115, 'C2': 2836535610094204489, 'C3': 97},
               {'C1': 163, 'C2': -7402806819103986982, 'C3': 80},
               {'C1': 214, 'C2': 1406815814152400328, 'C3': 116}],
        'B4': {'D1': [8500578740826482477,
                      12226901131121335906,
                      2750105902236846028,
                      16578087570072128732,
                      10134124417936466872,
                      9233719685889612393],
               'D2': -15,
               'D3': 139,
               'D4': 1267974531,
               'D5': -21463},
        'B5': [-128, 94, 40, -70],
        'B6': 1443581015},
 'A2': 53956,
 'A3': {'E1': -261720682,
        'E2': 41611,
        'E3': 2106755406,
        'E4': 933258191,
        'E5': 29,
        'E6': [2367871577, 765517831],
        'E7': 40560},
 'A4': -44,
 'A5': 2264737746}

Пример 2

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

(b'LDLm_\xc1\xdd\xb1At!rF\x00\x00\x00P\x00\x00\x00Z\x00\x00\x00d\x00\x00\x00'
 b'n\x00\xfe&\xc1\x1cg\xf5`\x9dr\xa2\x9e\xff\x1d\xa4,N\x0f\xc0\x80\xf6\x19\xc8'
 b'm\xae\xeb\x03\x00\x00\x00\xa6\x00\x00\x00\x13\xe96p \xb5\x89\xb4\x97'
 b'*\xbf\xc5^\xd8\xd1\x99L\x80\xb7\x9a\xdfk\rqy\xe8\xc9\xbe\xdf\x10c\xd3\xa2'
 b'O\xff{\x81\xcc\xbb=\xe3\xf7\x96\x17\\\x07\xeb\xe6>\x0b\xf1S\xe0'
 b'\x9f\x9b\xaa\xb9\x0eb\xce\xd62A\x99\xb6\x82\xb6\xce\xcc\xf8"&\xddg\xe7:g'
 b'\xda\xbd4\x8a\x84\x84\x12G"\xb3=K\xce:!\x05\xc3\x90\xa3\x0f\x8a>\xbe\xf4'
 b'\x92\xe1d\xb7\x15\x10\x10\x06`\x93\x02\xfeC\xb5')

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

{'A1': {'B1': 2984100191,
        'B2': 1914795073,
        'B3': [{'C1': 180, 'C2': -7362866014217885033, 'C3': 76},
               {'C1': 128, 'C2': -1695199482269951305, 'C3': -55},
               {'C1': 190, 'C2': 8934947746476134623, 'C3': -127},
               {'C1': 204, 'C2': 530324793294273979, 'C3': -21}],
        'B4': {'D1': [11213928248306777830,
                      4698053543197587882,
                      2519989179711141529,
                      13680360320779410726,
                      12907957626855524916,
                      10431186802198858557],
               'D2': -93,
               'D3': 15,
               'D4': 4106108554,
               'D5': -7790},
        'B5': [-2, 38, -63, 28],
        'B6': 2640377191},
 'A2': 41586,
 'A3': {'E1': -1541537890,
        'E2': 20012,
        'E3': -159334385,
        'E4': -1368537063,
        'E5': 235,
        'E6': [269858660, 2472543760, 3041132034],
        'E7': 59667},
 'A4': 54,
 'A5': 2310348912}

Вариант №8

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'9FJW\x00\x98.|O#\xf2\xfe\x9c\x07$\xc6\xb1@\x00\x00\x00\xb4\x06#'
 b'\xa0\x8b\xb6\x91\xe0{\xe3\x89-\x9dZ}q \x05\xb0\x82\xff\x1c\x10$\xd1\nf'
 b'\x82?\xc5!]\x8d\x96\xb2\xb0\x803O%A\x17\x9f\xe2h\xcd\xaa\xb0z-k\xef\xec9?'
 b'\xdf\xb4\xd3yx\xe7(y\x04\r\x80f\x8f\x8b]\xb3\xbe\xc8\xb2n\x8d%%\xb9Q?\xe9n'
 b'\x10m<=\xb8%\xc1)\xcc!{\xb7\x95n\x87>\xa3x\x86\xb0G\xb2\r\xbf\xdd\xbf}\x0f'
 b"<.8\x9e\x00\x00\x00 \x00\x00\x00:\x00\x00\x00T\x00\x00\x00n\xac\xa8'\x17"
 b'NyQ\x8a\x00\x02\x00\x00\x00\x1c\x0cG\x00\x04\x00\x88=\x0b\xd4\xe1>\x81!\x83'
 b'\x90q\xca\x8a\x84\xa8,\xfc')

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

{'A1': {'B1': -6005507122044251766,
        'B2': [-8069, -7287],
        'B3': 3143,
        'B4': [{'C1': 3286882797865665968,
                'C2': [130, 255, 28, 16, 36],
                'C3': [209, 10, 102, 130],
                'C4': 0.1650807324744128,
                'C5': -128},
               {'C1': 3697214780593922664,
                'C2': [205, 170, 176, 122, 45],
                'C3': [107, 239, 236, 57],
                'C4': 0.49541174757506434,
                'C5': 121},
               {'C1': 292030728832245171,
                'C2': [190, 200, 178, 110, 141],
                'C3': [37, 37, 185, 81],
                'C4': 0.7946855672361641,
                'C5': 37},
               {'C1': -4527863506162707090,
                'C2': [135, 62, 163, 120, 134],
                'C3': [176, 71, 178, 13],
                'C4': -0.46481253135491185,
                'C5': -98}],
        'B5': [0.03413856402039528, 0.25220879912376404]},
 'A2': 3349639238676028423,
 'A3': 9414,
 'A4': -20160,
 'A5': {'D1': 36977, 'D2': -54, 'D3': -1971017684, 'D4': -4},
 'A6': 1571,
 'A7': -1601456495}

Пример 2

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

(b'9FJW\x00\\\xf7\x1a\xe4 G\xb3\xa5\xb0d\xa0\xef\x04\x00\x00\x00xB\x10'
 b'\x0b\xbf\xf1;\x9er\x8a\x85\xf0C\x8b\xfb=J\xcaR\x02\xa0\x08\xb4'
 b'\xd4\x88\x18\xf9\xe6\xbf\xd5,P\x98\xe6\x85,N\xad\x87\xbaR\xc6\xd9'
 b'\xf8\x8d\xd2\x0eM\x8c\x19_\x94\x0cp\xbf\xd2\x12\xc9\x1c?~\x8cO\x00\x00\x00 '
 b'\x00\x00\x00:\x86:\x88c\x92\x86\x86\xb4\x00\x02\x00\x00\x00\x1c\xea\x06'
 b'\x00\x02\x00T>\xbb\xe0\xc7?P\x1c\xa5#\x86|g\xc6C\x92~')

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

{'A1': {'B1': -8774550962736560460,
        'B2': [-24974, -30075],
        'B3': -5626,
        'B4': [{'C1': -1133908769985869230,
                'C2': [2, 160, 8, 180, 212],
                'C3': [136, 24, 249, 230],
                'C4': -0.3308297627609871,
                'C5': 78},
               {'C1': -5942576318605821811,
                'C2': [210, 14, 77, 140, 25],
                'C3': [95, 148, 12, 112],
                'C4': -0.2823965812549225,
                'C5': 79}],
        'B5': [0.36694929003715515, 0.8129370808601379]},
 'A2': 17805794904055719344,
 'A3': 25760,
 'A4': -4348,
 'A5': {'D1': 9094, 'D2': 124, 'D3': 1741046674, 'D4': 126},
 'A6': 16912,
 'A7': 197128507}

Вариант №9

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'HJFU\xe7\xea\x91\xa8Os\xadI\xcd\xed\xf66}\xf9\xb9\xeb\xa9\xe7\xeb\n\xefne/'
 b'\x005\x00;\x00A\x00\x9d>\x87\xf0G\x00\x00\x00\x9a\x00\x00\x00\x0e:q\xbf\xa0'
 b'%\x0f\xb7{?\xfc\x06\xfb\x817\xbfW\x86\x81\xe5\x06\xbf"{u`u\xfc\xcc'
 b'\xf8\x95O\xd9\x06\xe6"\x91\x05\xfdr\x1b,\x88\xd3\x10\xe0\xbf$\xe5'
 b']\x7f\xa1\xd2\xd2?\x9e\xd0\xbc\xe4\xc5\x08\xab\x8d\xce\xef+\x1a0\xf1'
 b'\xc6\xba,f\xcf\x88\xf0\x9b\x07u\xbc>\xbc\xcf\xda\xd0X\x84ipoo\xeb\x9d'
 b'\x07\x00\x00\x00f\x00\x83~\r\xe6Bs\xe2a\x02\x00\x00\x00V\x00D\xb3\x04V'
 b't\x00\x00\x00\xfcyG?\x8dw')

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

{'A1': -3654198911865155094,
 'A2': {'B1': 12244084493135574765,
        'B2': -284496921,
        'B3': 'ne',
        'B4': [{'C1': -0.9422920942306519, 'C2': 9632},
               {'C1': 0.9832620024681091, 'C2': 1788},
               {'C1': -0.7168270945549011, 'C2': -31145},
               {'C1': -0.5269394516944885, 'C2': 31522}],
        'B5': -259572067,
        'B6': {'D1': -59416459,
               'D2': -52,
               'D3': -8,
               'D4': 401140213165412245,
               'D5': -3}},
 'A3': {'E1': [-0.5020539912810433, 0.29410588682329064],
        'E2': 1443148612,
        'E3': {'F1': -7210112579066348858,
               'F2': 0.36808034777641296,
               'F3': -790966340,
               'F4': -7067432665809845160,
               'F5': [53406, 58556, 2245, 36267, 61390, 6699, 61744],
               'F6': 7053326697580297859},
        'E4': [31228, 16199, 30605]}}

Пример 2

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

(b'HJFU\xe7ur\xcc\x9b\x1e\xcb\xa8\x90\xc4\xf5\x93\xd8f\xdcz\xc4\x0e?D\xdbxe/'
 b'\x005\x00;\x00A\x00rl\xf4\xacG\x00\x00\x00\x94\x00\x00\x00\xca\xa8\x1d\xbfK'
 b'\xa5_i\x05\xbex\xee\xf2\xbb\xd8>\x93\x01{\xbeh\xbfB\xfe\xe0\x8b\xfeO\xcb'
 b'~\xc2\t\x18\xdf\xba\x05\xe6;\xb7p\x15\x0c\xee-\xd1\xea?\x8cU\n\x99\xec\x8f'
 b'\xe0\xbf_QT\xeb\xaa\x95\xf3\xbbz\xd4\xb2\x14\xef\xb5\xef\x81\x8eM\xe6>[\xe3'
 b'C\xa7\xa2\xaf^\x86\xc5\x99O8\x04\x00\x00\x00f\x00\xfa\xb9C\xa5\x8f|"\x87'
 b'\x02\x00\x00\x00V\x00\xa3\x1cv\xecn\x00\x00\x00\x01|\xe7\x8aCZ')

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

{'A1': -8022939403837214091,
 'A2': {'B1': 14157870712870925764,
        'B2': -616284402,
        'B3': 'xe',
        'B4': [{'C1': -0.6158567667007446, 'C2': -23221},
               {'C1': -0.13028477132320404, 'C2': -4488},
               {'C1': 0.4233089089393616, 'C2': 403},
               {'C1': -0.9091565012931824, 'C2': -446}],
        'B5': -1393267598,
        'B6': {'D1': 1342082016,
               'D2': -53,
               'D3': 126,
               'D4': 4316143593046149570,
               'D5': -73}},
 'A3': {'E1': [0.8380345963820854, -0.5175688733167347],
        'E2': 3967163555,
        'E3': {'F1': -9083841884933925766,
               'F2': 0.4498104453086853,
               'F3': -1488723109,
               'F4': 4057630862926065570,
               'F5': [20831, 60244, 38314, 48115],
               'F6': 9737482300723280378},
        'E4': [31745, 35559, 23107]}}

Вариант №10

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'DRXP\xb2K\xfb#-\xfeE\xa2\x92\xf0O\xb6\xa86\x0c\xd6?@\x8f4\xf8c\xb5B'
 b"l\xf8\x88\xb9\xc7\xf0f\xb8\xd7\xeeR\x04\xeb\xbf\xf5Qk\x0b\xf9n'\t\x8c\x85"
 b'\xc5\x13H\x92v\xaa\xa1\x87\xc4\x10\x02\x00\x00\x00\x97\x00\x00\x00/\x92'
 b'\x04\x0e^\xdc\xdd\x07\xbfB\xd6\x1a\x9d<\xd9\xa7\xbf\x83\x93Wz\xd4(\xd0\xd3-'
 b'\xc2\x9a\x8f\xd5\xbfU\x1c\x8do\xec=\x99%\x98$\xcf\x896\xe0\xd0\xeb\x8b\xcdY'
 b'P\x02\x00\x00\x00\x9b\x00\x00\x00\xb0\xfe\x8c\x18\xe6}\x17\x9e\x88\xa2;'
 b'\xe6\xfc\x8cQ\x8f\x88v\xeaJX\x88\xd8f\xa4`\xee"\xbal')

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

{'A1': 10566084633745947467,
 'A2': 0.34449545360371214,
 'A3': [{'B1': 64,
         'B2': 13455,
         'B3': 25592,
         'B4': {'C1': -127122763,
                'C2': {'D1': -255346296,
                       'D2': -0.84427782677609,
                       'D3': 20981,
                       'D4': [107, 11, -7, 110, 39, 9, -116, -123],
                       'D5': [5061, -28088, -21898, -30815, 4292],
                       'D6': [26328, 24740],
                       'D7': -28113}},
         'B5': 4809571576521297412},
        {'B1': -42,
         'B2': 40218,
         'B3': 55612,
         'B4': {'C1': -1820082265,
                'C2': {'D1': 685013591,
                       'D2': -0.3368899246482302,
                       'D3': 7253,
                       'D4': [-115, 111, -20, 61, -103, 37, -104, 36],
                       'D5': [-30257, -8138, -5168, -12917, 20569],
                       'D6': [8942, 27834],
                       'D7': -336}},
         'B5': -6734959418998908788}],
 'A4': 8541234273728652859,
 'A5': 2287487722}

Пример 2

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

(b'DRXP\xb2`TK\xb4E\xab\xc9\x0e`\xfe\xa3\x98r\xe2\xed?\x0e\xac^\xfaF\x98^'
 b'\xea\x89E\x8e\ra\x14\xe5\xb0\\\x83\xe5\xd9\xbf\xbd\x18\xf8\x9b\xb3('
 b'\xc7\xba\xde\xa5\x84R\xb6\xa2\x06\xf5\xec!\xcb\x7f\x02\x00\x00\x00\x97\x00'
 b'\x00\x00\x0b\x05\x14%\xc2\xd2\x8f\xa1\x01\x14>AK\xb3\xc3\xa7\xb0lS^2\x92'
 b'\xe7Z3\xde\xaa\x14q\xed\xbf-\x90\x1c\xb0\xb3\x8b\xea|\xbb\x17\xcc'
 b'\xad\x16\x91I\x10\xee\x19\xc4\xad\x03\x00\x00\x00\x9b\x00\x00\x00*\xc4v'
 b'\xc9i\xb3c\x99\xfdJ\xcd\x7f`\xcbv\xd2\x9bd\xec\x8a\x7f\x1btu4y\xd3ec\xa6\x9e'
 b'\x9f')

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

{'A1': 1065571102715761760,
 'A2': 0.9338925343763087,
 'A3': [{'B1': 14,
         'B2': 24236,
         'B3': 18170,
         'B4': {'C1': -1981129064,
                'C2': {'D1': 1628278341,
                       'D2': -0.40463336994032884,
                       'D3': 6333,
                       'D4': [-8, -101, -77, 40, -57, -70, -34, -91],
                       'D5': [21124, -23882, -2810, 8684, 32715],
                       'D6': [30068, 31028],
                       'D7': 1291}},
         'B5': 1441610994823603476},
        {'B1': 62,
         'B2': 19265,
         'B3': 50099,
         'B4': {'C1': 1399632039,
                'C2': {'D1': -409849250,
                       'D2': -0.9200538003220615,
                       'D3': 36909,
                       'D4': [28, -80, -77, -117, -22, 124, -69, 23],
                       'D5': [-21044, -28394, 4169, 6638, -21052],
                       'D6': [26067, -22941, -24674],
                       'D7': -15318}},
         'B5': 5403643781405329782}],
 'A4': 7249619432843018189,
 'A5': 461343468}

Вариант №11

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'RNK\xd06\x8f\xb4\x19\xa0\xc1\xbf0\x94/\xd2\xd6\x89\xdd\xbfKn\x08\xbf\x02'
 b'\x00\xb8\x00\xc0\xd1\x11\xaf<#\xef\xbfd\x8di\xde\x16\xc4\xd7?\xb75\xfb>&'
 b'29\xda\xa5\xd1A\xcd\xfd\x0es\xd0x\xef\x8b\x01\xa3|\x9c\xe2$8\x19 \xe8'
 b"\xd80\x9a\x9d\x01\xd1F\xbf'\xb9\xce\xbf\xeb\x8f\xed\x7f\x9c\xfd6\xab"
 b'\xb3\xcc\x11C!\x9a\xcf\x16\xe4\x9a]\xe6\xef\xcdo\xe4\xbf8\xc0\xe3\xe0E`\xa6'
 b'^\xe1z\x02\x00\x00\x00[\x00\x08\x00\x00\x00]\x00L\x88oW[c\xf2d\x1a\xcc\xd8u0'
 b'!i\xb17NrA\x00\xa3\x186\xe0\xbf\x1bg\x7f\x95\x1c\xd2?o\x0c\x19\x05'
 b'\x00\x00\x00\x88\x00\x08\x00\x00\x00\x8d\x00\xf1?\xa9\xf0#e\x00\x95\x00')

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

{'A1': -0.13769837681177544,
 'A2': {'B1': -0.4615380337330093,
        'B2': -0.5329329371452332,
        'B3': [{'C1': -0.6386480031532529,
                'C2': 56,
                'C3': 58304,
                'C4': [-32, 69, 96, -90, 94, -31, 122],
                'C5': [171, 179],
                'C6': [204, 17, 67, 33, 154, 207, 22, 228],
                'C7': 1466927180,
                'C8': 91},
               {'C1': -0.5066035445798163,
                'C2': 27,
                'C3': 32615,
                'C4': [-107, 28, -46, 63, 111, 12, 25],
                'C5': [99, 242, 100, 26, 204],
                'C6': [216, 117, 48, 33, 105, 177, 55, 78],
                'C7': -257343503,
                'C8': 35}],
        'B4': -0.973051397259546,
        'B5': 0.37134334297134886,
        'B6': {'D1': 0.4906441867351532,
               'D2': 38,
               'D3': [50, 57, -38, -91, -47, 65],
               'D4': 10083410927384722893,
               'D5': -1669553407,
               'D6': -30,
               'D7': 36,
               'D8': 11356443118533613880},
        'B7': -0.7766266465187073,
        'B8': 39},
 'A3': -12615,
 'A4': 3962495320416316351}

Пример 2

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

(b'RNK\x84\xf1\x0c~{o\xd2\xbfT\xc0\x08\x1d>W\xe0?#?y?\x02\x00\xb6\x00\xa0'
 b'e\x9b\x0f\xdf\xd1\xcb?\xc4\xa7\x1d\xd1Z1\xe4?gw\x90\xbd\xb3\x90\x03\xbe\n'
 b"\x8am}\x13\xf2D\xa0\x0f^{A'\xe5\xf0'Vj\xb4\x1cIv\x99~.\x1f%\xf8>"
 b'\xfe\xde\x13\xfc\'\t\x9d"\x82b\xe0\xf6h\xcf\xa3\xcc\x88\xdc\xb4HRS\x90G'
 b',\x12/\x9d\xe2\xbf)a\x8ai\xb0\xd8HG\xad\xaf\x03\x00\x00\x00[\x00\x08\x00'
 b'\x00\x00^\x00\xc1\x8b)N\xdeh\x1c\xe17}\xf7\xb3X\x11\x87X_\x93\xf1\x07'
 b'^\xc6?\x0e\xe1\xf9\xc4\x08u\xbd6a\x95\x02\x00\x00\x00\x89\x00\x08'
 b'\x00\x00\x00\x8b\x00\x1b\xb1\xfbS}f\x00\x93\x00')

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

{'A1': -0.2880543452227118,
 'A2': {'B1': 0.5106497351716919,
        'B2': 0.9736196398735046,
        'B3': [{'C1': -0.5816874842587243,
                'C2': 41,
                'C3': 35425,
                'C4': [105, -80, -40, 72, 71, -83, -81],
                'C5': [246, 104, 207],
                'C6': [163, 204, 136, 220, 180, 72, 82, 83],
                'C7': 1311345601,
                'C8': 222},
               {'C1': 0.174744599301216,
                'C2': 14,
                'C3': 63969,
                'C4': [-60, 8, 117, -67, 54, 97, -107],
                'C5': [104, 28],
                'C6': [225, 55, 125, 247, 179, 88, 17, 135],
                'C7': 1409003803,
                'C8': 125}],
        'B4': 0.21734226476727958,
        'B5': 0.6310247501653454,
        'B6': {'D1': -0.07054024189710617,
               'D2': 179,
               'D3': [-112, 3, -66, 10, -118, 109],
               'D4': 8889559895501837181,
               'D5': -253417663,
               'D6': 39,
               'D7': 86,
               'D8': 3350283906122036330},
        'B7': 0.48465821146965027,
        'B8': 254},
 'A3': 5086,
 'A4': 16168628697388623868}

Вариант №12

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'OYO>\xa3\x1f\xb6\x00\x00\x00!\xf0\xd7\x14\x00\x00\x00\x03\x00_?\xe4(z'
 b"\xde\x92\xc9\x90k\x81[\r\x8f\x1cpqJ\xb4'\x07\x98\xf0\xf9\x99\xe9Ni\xed"
 b'/2\x0f\x9e\xe6\x9c\x00\x03\x00\x00\x00\x1c\xb3\x03\xe4\x87} \xee\xca'
 b'\x1b?L\x00\x02\x00\x00\x00\x1f\xbd?\x8b>r?U\x067\x9a\x14\xbf:\x1d\xe9v\x9dEx'
 b'\xa1x\x98F\xfd\xa4\x0bs\x19\xa0v\xbczqT\xa4\x19-\xfc\xabzP\xfe')

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

{'A1': 0.3186013102531433,
 'A2': {'B1': 2049262396117551000,
        'B2': 240,
        'B3': -107353778,
        'B4': 7632808835519800988,
        'B5': [{'C1': [107, -127, 91],
                'C2': 45827,
                'C3': -28,
                'C4': [-2021842706, -904183988]},
               {'C1': [13, -113],
                'C2': 48447,
                'C3': -117,
                'C4': [1047674709, 104307220]}],
        'B6': -0.7270188927650452,
        'B7': 30365,
        'B8': 69},
 'A3': {'D1': -16, 'D2': -10476},
 'A4': [8692361351223157771, 8293836620608205140, -6622211213839675138],
 'A5': 0.6299414012085425}

Пример 2

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

(b'OYO\xbfk\x96\x02\x00\x00\x00 A\x1d\x97\x00\x00\x00\x04\x00^\xbf\xd1C#'
 b"x\x81\xfbX\xc0nz\xca\xdax\x14Sn\x8c\x96\xbes\xce\xed\x80x[,\xc4u\xa7':"
 b'&\x00\x02\x00\x00\x00\x1cU=\xda\x1d\x81v\xcbP\xbf\xeb\x83\x00\x02'
 b'\x00\x00\x00\x1eE\xfei-~W\xfb\x1ey\x1e\x81\xbe\xb3\x0b\x0f[\xeb\xa4^!'
 b'\xb7\xdf\x1f\xaa&* \x15s\x9b\xf9B_\xe2\xfbF\x93\xea\xab\xb4\xa3\xdcZ0'
 b"\xd5\x04'\x8c\x8c\xe3")

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

{'A1': -0.9202576875686646,
 'A2': {'B1': 15742354846043117246,
        'B2': 115,
        'B3': -823295880,
        'B4': 6569841966021294630,
        'B5': [{'C1': [-64, 110],
                'C2': 21821,
                'C3': -38,
                'C4': [495023819, 1354754947]},
               {'C1': [122, -54],
                'C2': 17918,
                'C3': 105,
                'C4': [763254779, 511254145]}],
        'B6': -0.34969374537467957,
        'B7': 23531,
        'B8': 164},
 'A3': {'D1': 65, 'D2': 7575},
 'A4': [6782904682733512234,
        2311881097463619554,
        -340422085707521060,
        6498928476115733731],
 'A5': -0.2697228123505986}

Вариант №13

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'DUTI\x000\x006\x00<\x00B\xa3\x00\x07\x00\x00\x00H\xbc\rKb)l\t\xfa\xff'
 b'\xb5\x86\xddR\xcc\x87\r\x9a->\xa1\x07%\xc0\x00\x00\x00O\xf6\x86\x9f\xc6[c'
 b'Nza\xe5k(\xc6\xe8\xb3o\x05i\xcf\xe6v\x0cS\x97H\xa3izmmonfv\xa5\x03E\x17'
 b'\xe6\xbfM\xec\x1e\x01\xebMr@\x88\xe0\xf4\x18\xfbu\xe0}]\xd1\xe4L`\x14'
 b'd\xd3\xad,\x91\x95J')

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

{'A1': [{'B1': 40902, 'B2': 1533234810},
        {'B1': 25061, 'B2': 1797834472},
        {'B1': 45935, 'B2': 90820582},
        {'B1': 30220, 'B2': 1402423459}],
 'A2': -93,
 'A3': 'izmmonf',
 'A4': 13550569738801515002,
 'A5': -1,
 'A6': 46470,
 'A7': {'C1': -2498709962816344770,
        'C2': -1593367104,
        'C3': {'D1': [1990525765, 400998221, -333577749],
               'D2': 5580593844899289339,
               'D3': [1977646429, -773567392, 342152109, 747738442]}},
 'A8': 63110}

Пример 2

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

(b'DUTI\x000\x006\x00<\x00B{\x00\x06\x00\x00\x00H\xe2\xd0\xfe\xfc\xd4\xde\x94;p'
 b'\xd3\x17D\xca\xcb\xec\xf9\xb2\xfb\x99v\x81\xef,\x00\x00\x00NCS~\xa4E]'
 b'\xedh\xb8\x8a\xff\xeb\xbc\x14X<\xcd\xd4,\x13\x821\x0f\x01%\x9erfwzoo\xf7\x86'
 b'\x7f\xb2\xad\xde\x16,U\xceP\x86\x94v\x92_;\xd9o9\xb3\x0f\x9dXKi\xa2\x85\x1f('
 b'\xdbr\xa7\x8am\x01')

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

{'A1': [{'B1': 32420, 'B2': 1163783528},
        {'B1': 47242, 'B2': 4293639188},
        {'B1': 22588, 'B2': 3453234195},
        {'B1': 33329, 'B2': 251733406}],
 'A2': 123,
 'A3': 'rfwzoo',
 'A4': 16343843409584100411,
 'A5': 112,
 'A6': 54039,
 'A7': {'C1': 4956998558536629145,
        'C2': 1988226860,
        'C3': {'D1': [-142180430, -1377954260, 1439584390],
               'D2': 10697898902588845881,
               'D3': [-1290822312, 1265214085, 522771314, -1484100351]}},
 'A8': 17235}

Вариант №14

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'ZIWN\x87\xe1\xc8=\xc3\xf8\xc0$\x00\x84\xb2\\\xb0\xcfH\x10\xea\xd4\xbf\xd8'
 b'\x03\x00\x96\x00&\xe6cf\xd2:\x03\x85H|\xf5\x03Y?G\xf3/g\x11\xd4 !#['
 b'\xb1H\xb6\xfd\xd6x\x8d\x92r9l\xdf\xcd\x1dh\xda\xad\t\xeadR\xf6L\xae'
 b'\xa5\xa8p\xb9bNu\x9f\x859\xd0\t\xac\xbc\xbd\xf1\xca\xa1=\xfc\x8b\x88/`'
 b'\xc1\x1f\xc6\xbb\xd5\xe9\xd0\x1c\xfcj\xba\xf27\xf78\xd3\xbaH\xb3\x8e'
 b'\x99d\xcfhDr>)7\x17-Jr\x9f0\x8f\x02T\xaa:4\xc1\xd7\xe0H\xedmas\xbfohw')

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

{'A1': 13905078519637051214,
 'A2': {'B1': 31816,
        'B2': 0.8477166295051575,
        'B3': 1731195719,
        'B4': {'C1': 5238068048046380049,
               'C2': -74,
               'C3': 2373506813,
               'C4': [{'D1': 29330,
                       'D2': 12527439790701767737,
                       'D3': 59913,
                       'D4': 1291211364},
                      {'D1': -23122,
                       'D2': 9628543507865628840,
                       'D3': 53305,
                       'D4': -1111708663},
                      {'D1': -13583,
                       'D2': 13934189510594936225,
                       'D3': 50719,
                       'D4': -789981765},
                      {'D1': -996,
                       'D2': 13462166345587276394,
                       'D3': 45896,
                       'D4': -815490674},
                      {'D1': 17512,
                       'D2': 8235444446333320818,
                       'D3': 12447,
                       'D4': -1437334897}],
               'C5': 58,
               'C6': -522731212},
        'B5': -4792,
        'B6': -0.950705349445343},
 'A3': -19836,
 'A4': -0.32678610907055883,
 'A5': 216,
 'A6': 'ohw',
 'A7': [38, 230, 99, 102],
 'A8': [210, 58, 3, 133]}

Пример 2

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

(b'ZIWv\xfdK\xc5\xa5\xc2^\x9b$\x00+|\x08*\xa5;^\x0b\xd1\xbf2\x04\x00\x96\x00'
 b'\x92\x03\xf3xsn=\xd99Ug\xe7\xd7\xbd\x8f\x86n\x0c\xd3\xbf\x81h\n\xe7'
 b'\x98\xe7ZK\xc1\xf6\x85F\xd0\xa7#kq\xe4\xe1\xb7I\x10\xd5BB\xe0\xed\xa1t|:\xb6'
 b'\xbc\xe3\xd3\xfa\x9d0\x13\xf3\xe4Q\xd1\xaa+s\x0c5R\xb6{\x19\x89@\xb8g'
 b"\x8d\x11f\xda\xee#\x1e\xf5Kr\xe387\xa8\xae'\xae\xed\xb5\xcd\xa4J\xe8\xa6"
 b'"\xab\xa7\x13\xd1?T\x8c\x10\xcd1\xdf`\xd2\x0f_v\xd2\xba\xa0Y?rekw')

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

{'A1': 11195599740925115766,
 'A2': {'B1': 21817,
        'B2': -0.10542183369398117,
        'B3': 208569999,
        'B4': {'C1': -1758401622599155757,
               'C2': 90,
               'C3': 2247541067,
               'C4': [{'D1': -12218,
                       'D2': 5311962656778429351,
                       'D3': 54544,
                       'D4': -304070078},
                      {'D1': 29857,
                       'D2': 11383643983209446012,
                       'D3': 4912,
                       'D4': -783162125},
                      {'D1': 11178,
                       'D2': 9879063280607366259,
                       'D3': 47168,
                       'D4': 1712426343},
                      {'D1': -4390,
                       'D2': 3979180350821965347,
                       'D3': 44712,
                       'D4': -1242714585},
                      {'D1': -23347,
                       'D2': 15065569531947051082,
                       'D3': 21567,
                       'D4': 835522700}],
               'C5': 223,
               'C6': 1594872416},
        'B5': -11658,
        'B6': 0.8501087427139282},
 'A3': 31787,
 'A4': -0.26631885361408125,
 'A5': 50,
 'A6': 'rekw',
 'A7': [146, 3, 243, 120],
 'A8': [115, 110, 61, 217]}

Вариант №15

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'\xe8TVWQ&\x08\xb7\x85\xd8\x9a\xd8B}\xd7\x16\x13\x13\x8f\xce\x07\xecr\xfe'
 b'\x8fv\xbd\xcd\xea\xbf\x02\x00E\x00\x00\x00\x0b\xf4\x937~z"\xd1\x03\xbc\xec?'
 b'\x03\x00q\x00|\x00\x00\x00\x03\x00\x00\x00\x8b\x00\x81)DYY-\xbf\x8d\xc9E'
 b'[\xd0\xe8\xfei\x94\x7f\x81Y\xb7\x81\x890m>g-\xbc>\xa7F\xed).\xb5Y\x85\x15'
 b'0\xec.\x0b\x8d\x12\x85\x83>\xfd|B?cvz\x13\x0f!\xd7.P8\xc1\xbc\x02\x00\x00'
 b'\x00t\x00+\x98\x03\xac\x7f\xe6\xf7\xbe\xd1`96\xe7\xd8Y\xa6\xdb\xd3\xf5\xb4')

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

{'A1': 4816770056219723814,
 'A2': 562544315555305341,
 'A3': 236,
 'A4': -0.8376147571252217,
 'A5': {'B1': [{'C1': 1531300237,
                'C2': {'D1': 6449576416781461712, 'D2': 33207},
                'C3': {'E1': 0.23163045942783356, 'E2': 0.3675338923931122}},
               {'C1': 703415975,
                'C2': {'D1': 3381130289238095150, 'D2': 36107},
                'C3': {'E1': 0.25687462091445923, 'E2': 0.7597196698188782}}],
        'B2': 932443147,
        'B3': 0.8979510388051748,
        'B4': 'cvz',
        'B5': {'F1': 188,
               'F2': [3609267987, 3241693230],
               'F3': -1409050581,
               'F4': -0.48418042063713074},
        'B6': [909730001, 2790906087, 3036009435],
        'B7': -127},
 'A6': 17449,
 'A7': -0.6771445870399475}

Пример 2

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

(b'\xe8TVWQ\x02ZyV1w\r\xb0\xda\xc1\x00\x9a\x06b\x98u\x12\xd0\x83\xe5\x17R`'
 b'\xdf\xbf\x02\x00E\x00\x00\x003\xe3\xd6\xa0\x08cU\x0b\xc0\x8a\xe5?'
 b'\x03\x00q\x00|\x00\x00\x00\x02\x00\x00\x00\x8b\x00\x0b\xaf\x18AKz?2\xdea'
 b'Y\xa0"r\xf1|\xe9\xfdB\xad\x90wQ\xab\xbe\xfd:%?L\xbdQ\x9c\xccXNU\xfe'
 b'\xff\x92Z\x01\xe3a\xb9l\xbfk\x197?uvq\xef\x9e\xf6l1\x8e\xbdiZ\x02\x00\x00'
 b'\x00t\x00\x0e;\x083<p\xb3>\x84\x80_\xceO\xe7s~')

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

{'A1': 12685926779160451586,
 'A2': 8473630479390654938,
 'A3': 18,
 'A4': -0.49025394757887586,
 'A5': {'B1': [{'C1': 1499586098,
                'C2': {'D1': 4827271098447045280, 'D2': 37037},
                'C3': {'E1': -0.3346059024333954, 'E2': 0.6454313397407532}},
               {'C1': 2622602572,
                'C2': {'D1': 6526560277831243980, 'D2': 58113},
                'C3': {'E1': -0.9247036576271057, 'E2': 0.7152315974235535}}],
        'B2': -1596529869,
        'B3': 0.6731872769697427,
        'B4': 'uvq',
        'B5': {'F1': 90,
               'F2': [1828101871, 1774030385],
               'F3': 856177422,
               'F4': 0.35046565532684326},
        'B6': [3462365316, 2121525071],
        'B7': 11},
 'A6': 6319,
 'A7': 0.9777107834815979}

Вариант №16

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'FGAU\x18\xc3Y\x15\xb2\x1a\xc8\xbb(\x03\x00\x00\x00(\x00\x00\x00\x8e\x00\x00'
 b'\x00TU\x11M\xe0\x83\xad\xc7\xbfeypjjh\x87\x07s+\x8a\x1a\xe3t\xd6\x02\x00\x00'
 b'\x00"\x00\x00\x00\x83\xeb\xad\x96\x88y\x838\xea"i9\xaf\xe6?\xfe\xf5">xT\xcb@'
 b'\x94\x02\x00\x00\x00$\x00\x00\x00\xad1\xda(\xa3\x8a\xc4\xb0+\xfa-.\x9e\xd5?'
 b'1\xdcM\xa4\xc8\n<\xe7%\x02\x00\x00\x00&\x00\x00\x00\xd9\xa7\x01'
 b'\x9e\xe5\x88\xc5L@\x82\x8f\xaa\x14\xd4?\xc2\xce\x8d\xd6\xa2W\x03\x00'
 b'\x88\x00\x00\x00\xb2\x86\xbe\xa2u\xc7\xb7\xd9\x86\xb4\x1b#`\xbe\xe9\xbf'
 b'b\xac&\x8f\xda\x95\x10p\x18\x92\n\x1c\xe8\x0c\x19\x8c\x19,+\xd8?\xdb\xe6\xbd'
 b'\xca[\x1c\x1br,\xce')

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

{'A1': 2935159599144458691,
 'A2': [{'B1': 135,
         'B2': 2318103303,
         'B3': -696982758,
         'B4': 'ey',
         'B5': -5245,
         'B6': 2038994605,
         'B7': -125,
         'B8': 0.7088896802372977},
        {'B1': 254,
         'B2': 2017338101,
         'B3': -1807692972,
         'B4': 'pj',
         'B5': 12717,
         'B6': 2325948634,
         'B7': -60,
         'B8': 0.33777956476177007},
        {'B1': 49,
         'B2': 3366211036,
         'B3': 635911178,
         'B4': 'jh',
         'B5': -22567,
         'B6': 2296749569,
         'B7': -59,
         'B8': 0.3137613679364264}],
 'A3': {'C1': {'D1': [-12606, -10611, 22434],
               'D2': 15688227135023908530,
               'D3': -0.8044892011363494,
               'D4': [-21406, -28890, -27174, 28688, -28136],
               'D5': 10},
        'C2': 28,
        'C3': -24,
        'C4': 0.3776350259289678,
        'C5': 8222196725264017115,
        'C6': 52780},
 'A4': 84,
 'A5': 13819204763525124437}

Пример 2

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

(b'FGAU\x18\x9f\xc5\xf9H\xccA\xa5\xad\x03\x00\x00\x00(\x00\x00\x00\x8c\x00\x00'
 b'\x00\xe7\xa1\x0b\xba\x8d$\x0eb\x83vdomuv<\xb2\x04\x1c\x0e\xceo0@\x02\x00\x00'
 b'\x00"\x00\x00\x00T\xf4i\x97\x7f\xaf\xa2\xa0\\QA2\xee\xa8\xbf\x87=\xa0l'
 b'\x1f\xcch\x8dU\x02\x00\x00\x00$\x00\x00\x00PI\xa9\xe4`\xac\xb98/\x80F'
 b'\xdcK\xd1\xbf\xf0\xcfsl\x02g\x97\xc2z\x02\x00\x00\x00&\x00\x00\x00\xd0\xc6c'
 b'\x93\xcf\xf8\x87\xd2\x81[\xc1\x1d\xe9\xe7\xbf\x1b\xcf\xdb\xa2'
 b'\x02\x00\x88\x00\x00\x00\xb0\x063\x9bm\xc1\xa2Z\x8c\x97\xb8\xe1\xeb\x96'
 b'\xde\xbf\xb8\xf7\xd7U\xd2\xea\x04\x9d\x8a\r[\xc4\t(\x80u\x1a\x03"\xc2?Y'
 b'0H\xc7\xd8\x14w\x8a\x1du')

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

{'A1': -5934264588337298017,
 'A2': [{'B1': 60,
         'B2': 236717234,
         'B3': 1076916174,
         'B4': 'vd',
         'B5': -2988,
         'B6': 2944374633,
         'B7': -94,
         'B8': -0.048692293618551874},
        {'B1': 135,
         'B2': 527212605,
         'B3': 1435330764,
         'B4': 'om',
         'B5': 18768,
         'B6': 2892031145,
         'B7': -71,
         'B8': -0.2702551544650649},
        {'B1': 240,
         'B2': 40661967,
         'B3': 2059573095,
         'B4': 'uv',
         'B5': -14640,
         'B6': 4174353251,
         'B7': -121,
         'B8': -0.7472065712464036}],
 'A3': {'C1': {'D1': [-12517, -23845],
               'D2': 6530995086140049072,
               'D3': -0.47796151202270987,
               'D4': [-2120, 21975, -5422, -25340, 3466],
               'D5': 91},
        'C2': 196,
        'C3': 9,
        'C4': 0.1416629676050445,
        'C5': 9977466420751511641,
        'C6': 29981},
 'A4': -25,
 'A5': 9467144916845595553}

Вариант №17

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'YYGB\xfc\x9a\x92\xff\x1aJ)\x9ek\x02\x00R\x00pwzujfaqf\x15\xf4'
 b'\xa4\xff\x91\x96\x91\xb9d\x00!\xa4$\xbf{6\xce=f{k\xbf\xb8\x83\x93>G|B\xbf'
 b'\xa4\xbaX>\xe1}c\xbf\xbd\xf3q?]\xc9\x82\x0b\x1b?B\x11\x80\xc7M\xbfPL\x8bF'
 b'\x00\\N\x06\xba\xbd>!L\x00\xa1&\xd7\x07\xeb\xbe\x7f7\xaf\xb2\xac\xf9\xf9\x81'
 b'|\x06\xb0<\x18\x88\xe4?\x9e\xbd\x83~\x10\xff\x8d\x88\x08\xde n^\xa2\xc01'
 b'\x11\xc5\xd7]s\x9f\x04\xb3\xf2\xc4h\xc5C\x86\x00\x1b\x8c\xbb>\x00\xe4\xb7=u'
 b'\x80\xdd\xbe\xa2Fe=`Q >\x00\x96\xc9\xae\x0b')

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

{'A1': 7754681006635848346,
 'A2': [{'B1': -117,
         'B2': {'C1': 0.6056443452835083, 'C2': 4418},
         'B3': 20060,
         'B4': 0.3705598711967468},
        {'B1': 33,
         'B2': {'C1': -0.8038253784179688, 'C2': 19536},
         'B3': 9889,
         'B4': -0.4590441882610321}],
 'A3': 'pwzujfaq',
 'A4': -7956011164533254810,
 'A5': 185,
 'A6': {'D1': -9080952653488375937,
        'D2': 0.6416131196312587,
        'D3': -98,
        'D4': 276726717,
        'D5': {'E1': [-29185, 2184, 8414, 24174, -16222, 4401, -10299, 29533],
               'E2': 1183,
               'E3': -3405,
               'E4': 1137010884,
               'E5': 134},
        'D6': {'F1': 0.36630329489707947,
               'F2': [0.08979034423828125,
                      -0.43262067437171936,
                      0.05597556382417679,
                      0.15656042098999023],
               'F3': 0,
               'F4': 196004246}},
 'A7': [-0.6431294083595276,
        0.1006898507475853,
        -0.9198516607284546,
        0.2881143093109131,
        -0.759708821773529,
        0.21164947748184204,
        -0.888639509677887,
        0.94512540102005],
 'A8': -13987}

Пример 2

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

(b'YYGB\xfc\xf8\xc2\t\xc1\xe2\x96\xa6\xd5\x02\x00R\x00yeuxqltf\x16\xc4\xf7'
 b'W;\xfdA\xfd,d\x00\xa2@\xef\xbd\xef[\xe0\xbe\xe8\x14\x12\xbe\xbf9\xc6:)|]?'
 b'\xe1\xae\xeb\xbe\x05\xfc\xeb\xbe\xc5W\xe0>\x18,\x86~\x14\xbf\xf69'
 b'\xaa#\x88\xbd)\xae1F\x00\xdd\xa1 \x9e[\xbexL\x00T*\x1c1\xeb>\x11\x00t\xba'
 b'L\xb7\x8e\xec\xa4\xf6\xf0\xdb\xb9\x02\xd9\xbf3\xfb\xc5\xbe,Ky\xf6'
 b'\xe6\xf2\xd2Y+cF\xaf\xfa\x08+X!\xf0\x8d7c\x06\x99\x82/e3A\xb7\xbe\xbe\xad'
 b'\x00P?]\xe1q\xbexjY?c\x1es?{ \xd5\x82a')

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

{'A1': -3051585796851514632,
 'A2': [{'B1': 49,
         'B2': {'C1': -0.5800555944442749, 'C2': 14838},
         'B3': 41437,
         'B4': -0.21447038650512695},
        {'B1': 120,
         'B2': {'C1': -0.06647427380084991, 'C2': 44585},
         'B3': 10836,
         'B4': 0.4593590497970581}],
 'A3': 'yeuxqltf',
 'A4': -197598477306837994,
 'A5': 44,
 'A6': {'D1': -1400980893892083695,
        'D2': -0.3907913825858975,
        'D3': 51,
        'D4': 750700027,
        'D5': {'E1': [31051, -6410, -11534, 11097, 18019, -1361, 11016, 8536],
               'E2': 36336,
               'E3': 25399,
               'E4': 797088006,
               'E5': 13157},
        'D6': {'F1': -0.37249186635017395,
               'F2': [0.8125103116035461,
                      -0.23621125519275665,
                      0.849280834197998,
                      0.9496824145317078],
               'F3': 123,
               'F4': 1635964192}},
 'A7': [-0.1168224960565567,
        -0.4382013976573944,
        -0.14265787601470947,
        0.0015123410848900676,
        0.8651757836341858,
        -0.46031859517097473,
        -0.46090713143348694,
        0.4381696283817291],
 'A8': 11288}

Вариант №18

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'PSNX%}\x99\x00l\x00\xa4\x84\x04\x9eD\xb9\x8e\x98\x8c\xf20\x8a\xa8k#\xd8\x9c|'
 b'\xbeg^p\xa4\xa7\x98\xd1F\xb6\xb4\x02\xbep\x87\xdbuF\t\xbf]\xff;u'
 b'\xa9T\xc0\xa7\xdc\xa6em\x99\xec\x96\t\x8a\x1cq\xde\t\x95g\x95\xd4\xccv0'
 b'E\x9f\xc5r\x00\x00\x00\x04\x00\x00\x00;\xc6\x96[i\xfb/D\xd4hw0\x12'
 b'\x96^\xda\x93\x9b\x11\xd7\xaf\x00\x00\x00C\xfc?w\x084\x03\x9a\xba'
 b'&\xb9\xff\x19\x0f\xe8Lqj \x92\xe8\xd6f\x9a\r\x00\x00\x00\x03\x00\x00\x00u'
 b't\xa4\xb0\x96<\x81E\xf3\xf3 ;\xcc4\xde}VDC<\x1d\x00\x00\x00{\xd2\xbf\x01\xa4'
 b'\x8c')

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

{'A1': 1478851993,
 'A2': [{'B1': {'C1': 15999483423338318966,
                'C2': 48,
                'C3': [17823, -14990],
                'C4': [28057, 60566, 2442, 7281],
                'C5': [3331742569,
                       4214179028,
                       1752641554,
                       2522798739,
                       2601637807]},
         'B2': -4,
         'B3': 0.9649689197540283},
        {'B1': {'C1': 1805917390616797330,
                'C2': 232,
                'C3': [-10650, -26099],
                'C4': [922, 47654, 47615],
                'C5': [1956950166,
                       1015105011,
                       4078975948,
                       886996310,
                       1145256989]},
         'B2': -46,
         'B3': -0.5064170360565186}],
 'A3': 9512902330921425036,
 'A4': {'D1': 4063267496,
        'D2': 7720252352862512990,
        'D3': 1889839000,
        'D4': -783894860,
        'D5': 197719162455672329,
        'D6': -0.8671757578849792},
 'A5': 8478400959928378981}

Пример 2

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

(b'PSN\xa7q\x94Z\x00h\x00\x9e\x1ef\xc4Y\'"\xf6\xc5\x99\xa0U\xa3\xc9\xbcm\xa5b'
 b'(\xf9\xce\xa8^\tg&y\xbag\x01\xbe\x17zK\xefk\x15?C\x90\xa5\x94'
 b'\xc2\xaa\xf7\xd7\x8b\xd8\xcc\x18\xec\x1b<\x86M%BG\x1d\x9b;\xfb\x0e\x15\xc51'
 b'\x00\x00\x00\x02\x00\x00\x00;S\xcdE\xe8!\x92\x05\x1aa4Q+\xd3\x1dx\x99'
 b'\x01\xc6\xb5!\x00\x00\x00?\x89?W\xe9qN\xbb\n\xe9\xab]u\xc7\x1e\xf7\x1c'
 b'Q\xcd\xebv\r\xa5\x00\x00\x00\x02\x00\x00\x00q}\x1d\xda\x0f${\x85\xa9\x86\xa5'
 b'\x8e\xa1\x12\xce\x9b\xfdZ\xea\xce\\\x00\x00\x00uq\xben\x01D')

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

{'A1': 2809238618,
 'A2': [{'B1': {'C1': 9677432140880255803,
                'C2': 251,
                'C3': [3605, -15055],
                'C4': [6380, 6972],
                'C5': [1405961704,
                       563217690,
                       1630818603,
                       3541923993,
                       29799713]},
         'B2': -119,
         'B3': 0.8434057831764221},
        {'B1': {'C1': 12348155251398220881,
                'C2': 205,
                'C3': [-5258, 3493],
                'C4': [20155, 2793],
                'C5': [2099108367,
                       612074921,
                       2258996897,
                       315530237,
                       1525337692]},
         'B2': 113,
         'B3': -0.2324267029762268}],
 'A3': 2190654155950061253,
 'A4': {'D1': 2577421731,
        'D2': 14536614254329002446,
        'D3': 2824735079,
        'D4': 645511783,
        'D5': 125563653640383253,
        'D6': 0.7639258503913879},
 'A5': 10719318044545112268}

Вариант №19

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'STJ8\xbb!]\x00JN#z-5\x1f\x8c\xc7\x96\xcdZ.]\x07\xa2t\xb5Ox\xfe\x86R\xb7'
 b'V\x9b\xaf\xea\xb3Vl\x9d\\2m/\x83\x1c\x04oS2i\x1f\x16[\xef\xa4\xa2\x88\x00t'
 b'`?\xb9\xe4&\xcb\tR3+\xc4\xf7\xe3\x87p\x81\xc0\x00\x01\xb2xZf\xf4\xfc\x1eD"'
 b's\xda\xbd\xb5\x0b\x0c\xc5\xa7\x01\xc0\x01\xe4?wifkkpw&U\xf1>\x81\x0e/>'
 b'\xb3\x15\xc8>\x82T\x13?\xeb\x15\xed\xbe\x0f\xee3\xbf\xd3\xbd\x13?Y(^\xbf'
 b'\x07\x00l\x00\x113\xa8d?m')

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

{'A1': {'B1': 8635,
        'B2': {'C1': 0.6252136261302055, 'C2': 'wifkkpw'},
        'B3': [{'D1': 10096847359026875978, 'D2': 11675403012654601927},
               {'D1': 13209769084529390964, 'D2': 11343536892175948630},
               {'D1': 7999550187878822492, 'D2': 11884818092228424275}],
        'B4': 162,
        'B5': {'E1': -0.867803156375885,
               'E2': [0.471352756023407,
                      0.17095376551151276,
                      0.39079055190086365,
                      0.5755082368850708,
                      -0.46305784583091736,
                      -0.7028512358665466,
                      0.5771152377128601],
               'E3': 13073,
               'E4': 1832871080},
        'B6': [705700530415951988,
               8108700307391460178,
               7375340045688946817,
               13680373409100266740]},
 'A2': -75,
 'A3': 11}

Пример 2

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

(b"STJ8Q\x17]\x00w&'|\xbb\xe5\x17\xeb\x8f5\xbc\xd78\xc0\xcb\x8a]=J\x88"
 b'\xc4\xb02\x87X[N\xban4\x8b\xe2_F\n\xe1g\x92yB\x0b]S\x9b\xff\x96\xba\xf0'
 b"\xbbx\x00\xf6\xa8\x0bV\x1c\x05\xea\x7f\x14k\xeb\xd5\xd8\x00\x99'\xbe"
 b'\xcei\x1al\xed\xbd\xa9\xcb\x16\x1aq\xf3e>\x97\x9a\xd7\xbc\x8en\xedx6\xd0?njv'
 b'mvdv\xd0\xf1\xb1>J\xe0D>\xf3\xa9\x1a?@\xb1\xbb9\x03\x00l\x00\x84\xcf\x9b+'
 b'\x03N')

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

{'A1': {'B1': 5969,
        'B2': {'C1': 0.2533247297926484, 'C2': 'njvmvdv'},
        'B3': [{'D1': 16940261116781995639, 'D2': 10001298747876455823},
               {'D1': 9742043302102449501, 'D2': 16324198924511239000},
               {'D1': 4790020653540066911, 'D2': 17346342939337645323}],
        'B4': 187,
        'B5': {'E1': 0.00035799480974674225,
               'E2': [0.3475480079650879,
                      0.19226184487342834,
                      0.6041557192802429],
               'E3': -12412,
               'E4': 1308830619},
        'B6': [9217185206627969270,
               2853312770217831188,
               12231193211563527870,
               10898260244532172491]},
 'A2': -102,
 'A3': 215}

Вариант №20

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'\x0bGLT]LZ\xbf0\x00\xc2\x08\x9e\x98\n\x00\x00\x00\x0c\x00\x00\x00\xd6\xdb'
 b'\xf6\xbeM\x97\t\xbf\x9c\x16\xf9\xbd_\xf9l\xbf\xf6\xdc\x93\xbe\x08.'
 b'A\xbf\xf3\xde.\xb3b 1e9\x94\xdc\xbe\xd5\x05y\xc3\xb6Vxvu\xa4\x02\x00\x0e\x00'
 b'\x00\x00g4\x06\x00\x00\x00\x16\x00\xbdA5\xefo^\x82\x94>\x02\x00.\x00\x00'
 b'\x00@AZ\x9d\x8d\x8a\xd0\xbf\xae\xa1\x19Z\xa8h\xbf\x9b\xa2\x11\x8b)\xfd@\xd1'
 b'?\xad\xb1O\x00\xfd\x1f\x7f\xed\xe9:\xbc^d{\xd5\xb4\x95\xde\x8a(G\xf2U'
 b'\\\x0fe\xdb\x11\x19Yt\xdc9\xcdD\xc4,')

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

{'A1': -0.8527277112007141,
 'A2': {'B1': 46,
        'B2': -77,
        'B3': 8290,
        'B4': 49,
        'B5': {'C1': {'D1': 101,
                      'D2': -0.4308183491230011,
                      'D3': 8536668436644300245},
               'C2': 42101,
               'C3': [{'E1': 194, 'E2': 8}, {'E1': 158, 'E2': 152}],
               'C4': {'F1': 13415,
                      'F2': [-0.4821459650993347,
                             -0.5374649167060852,
                             -0.121625155210495,
                             -0.9256801009178162,
                             -0.2887951731681824,
                             -0.7546086311340332],
                      'F3': -67,
                      'F4': [65, 53, -17, 111],
                      'F5': 0.29005712270736694,
                      'F6': [243, 222]},
               'C5': -0.2584566151281429,
               'C6': [-7223940205003562578,
                      4598528150589870498,
                      -1333311793185967699,
                      -5416287305826813207],
               'C7': 680189589},
        'B6': 1286733235192459847,
        'B7': -4304089695463909095,
        'B8': 44}}

Пример 2

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

(b'\x0bGLT\xf9\xa7\x0c>8\x000\x1a9\x18)#\xe2.\n\x00\x00\x00\x0c\x00'
 b'\x00\x00\x0e\x00\x00\x00\x10\x00\x00\x00\n\tP\xbfwb\xc8>\xdb-\x9a\xbe\xf4N'
 b'\xb9\xbdP\x88\x9f\xbe}\xd1q\xcf5\x1f%\x00x\xe7\x92\xbdn<~Bk!/-q#'
 b'\x04\x00\x12\x00\x00\x00(\xfa\x05\x00\x00\x00"\x00\xd5s\xdcB\xfc\x9b'
 b'\xfd\x86=\x02\x006\x00\x00\x00\xd0}\xac`0\xb9\xdd\xbfY\x85\x8a\xd3\xda\x8f!'
 b'\xeb-\x91\x87\xa5\x9a5\xb9\xf76\xf0\xdb\x8er\xbd\xa1[v\x9d\xdf]3\x00\xdax#H|'
 b'\x18\xb9\xd4\xb0A\x99k)\xe0\xc6"\x1c\x80\x1dJ\xfbaQ')

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

{'A1': 0.13735951483249664,
 'A2': {'B1': 113,
        'B2': -49,
        'B3': 7989,
        'B4': 37,
        'B5': {'C1': {'D1': 0,
                      'D2': -0.07173055410385132,
                      'D3': 3255857800172944494},
               'C2': 9073,
               'C3': [{'E1': 48, 'E2': 26},
                      {'E1': 57, 'E2': 24},
                      {'E1': 41, 'E2': 35},
                      {'E1': 226, 'E2': 46}],
               'C4': {'F1': 64040,
                      'F2': [-0.8126379251480103,
                             0.39137622714042664,
                             -0.30113109946250916,
                             -0.09048262238502502,
                             -0.311586856842041],
                      'F3': -43,
                      'F4': [115, -36, 66, -4],
                      'F5': 0.06591340154409409,
                      'F6': [125, 209]},
               'C5': -0.4644280380325343,
               'C6': [-1503762630550321831,
                      -596386537331519187,
                      6602766828422557750,
                      8708273050092543350],
               'C7': 410798115},
        'B6': -2294184229192280903,
        'B7': 7060318331397219014,
        'B8': 81}}

Вариант №21

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'RYBI\xb51\x00\x02\x00F\xf3\x86 \xeb\x00\x00\x00\x03\x00N\x89\x7f\x00Q'
 b'\xa2S\x12\x00\xe7\x87y~\x89\x067\xcf\xb8ukkgv\t? ~C\x97\xf0\xb4\rMI\xc6zB'
 b'\xf5\x0fdeavx\x11?&\x93G\xfa\x90\x00\x00\x00\x1c\x00\x00\x001cwu\r@6'
 b'\xf7\x9c\xf4;\x84~\x1c}\xa2"\xd6e\xb0\xfd~I\t\xb2g\x7f\xbf\xa39I'
 b'K\xac\xb6\xfb\x0e\xd1\xee\xbe\x84,\x8e\x02vi\x0b\xbf?\xc1b\x07\x8b5\x946')

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

{'A1': -75,
 'A2': 49,
 'A3': [{'B1': {'C1': 3884415358, 'C2': 35078},
         'B2': 55,
         'B3': 207,
         'B4': 184,
         'B5': 'ukkgv',
         'B6': 9,
         'B7': 0.626926600933075,
         'B8': -26640},
        {'B1': {'C1': 3020770633, 'C2': 50810},
         'B2': 66,
         'B3': 245,
         'B4': 15,
         'B5': 'deavx',
         'B6': 17,
         'B7': 0.6506847739219666,
         'B8': -1392}],
 'A4': 4085653739,
 'A5': 'cwu',
 'A6': -30337,
 'A7': {'D1': [954823558120618884,
               9087276283449468336,
               18266117444657971135,
               11761512491223808782,
               15127237673276539510],
        'D2': 26891,
        'D3': -0.7490445375442505,
        'D4': 7,
        'D5': -1959422922},
 'A8': 2723353088}

Пример 2

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

(b'RYBI\xe6)\x00\x03\x00[\xa5\x05\xd4\xbd\x00\x00\x00\x02\x00g\x8e\xe6\x00i'
 b'N\x1fv\xcc\xf9w\xaa\n|oD\x116nqdxk:>\xb01\xb7/\xd6\x19\x8c\xc2\x0bj\xe8$'
 b'\xb4\x04lekwup\xbf\x1f\xde\xa4\xe6U1K\xe1\xd6\xfds|F\xe1ffvdu->\xc3\xfd'
 b'\xb9N\xe1\x00\x00\x00\x1c\x00\x00\x001\x00\x00\x00Fnb\x04;9\xf2\x95\x85\xee'
 b'\xda&\x15G\xc1\xcf\xed}D\x0b\x11\xb9o\xb6\xa9{o3\xae\xfc\x8c\xd3\xb9\xde'
 b'\xc0\x17h\x84\xcd\x92#:v\x1b=\xbc\xde\x8aT&\xea\x9d\xf6\x7f')

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

{'A1': -26,
 'A2': 41,
 'A3': [{'B1': {'C1': 4185369098, 'C2': 31855},
         'B2': 68,
         'B3': 17,
         'B4': 54,
         'B5': 'nqdxk',
         'B6': 58,
         'B7': 0.3441292941570282,
         'B8': 12246},
        {'B1': {'C1': 428655115, 'C2': 27368},
         'B2': 36,
         'B3': 180,
         'B4': 4,
         'B5': 'lekwu',
         'B6': 112,
         'B7': -0.6244909763336182,
         'B8': -6571},
        {'B1': {'C1': 827056598, 'C2': 64883},
         'B2': 124,
         'B3': 70,
         'B4': 225,
         'B5': 'ffvdu',
         'B6': 45,
         'B7': 0.382795125246048,
         'B8': 20193}],
 'A4': 2768622781,
 'A5': 'nb',
 'A6': -28954,
 'A7': {'D1': [304901113831091930,
               2744178445694893380,
               797622498478357359,
               3724191623659773632,
               1686744078905195126],
        'D2': 6973,
        'D3': -0.027165569365024567,
        'D4': 38,
        'D5': -358746497},
 'A8': 1310684876}

Вариант №22

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'ZPBM\x00s\x9c\xd2\xb2\xc0\xbf\xef\xf6\xef\xe9_\x9b\x1e\xad\x0f;F\xecT'
 b'Y\xfd\x04\xc8m\xf4o\x00\x00\x00\x04\x00\x00\x00|\x00\x03\x00\x80\xcb2Jxo'
 b'A30\xb8\xe2\x17\x1b\x07\xa1\xfc\xf2\x9c\x16\xf1vWL!\x05V\xcd\x1a\xe5\xc2'
 b'\xb8\x98\xca\xa8T\x9b97\xae-5\xbe\xd04N?w\xe1>\x00\x02\x00S\x9b\nW4F\x8bB|{'
 b'\xaeV\xde\xbf\xd0\xf1\x08\xbb\xef0\xa8\x00\x05\x00+\x00\x00\x00[/gP\xeaJ'
 b'\xf9\xc1S\x8d\xffw\xc4\xe6\xfa\x05\x96#J\xdc@c\x10\x8a\x8aT\r?\x8e\xd8')

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

{'A1': {'B1': [{'C1': [203, 50, 74, 120], 'C2': 1866543920},
               {'C1': [184, 226, 23, 27], 'C2': 128056562},
               {'C1': [156, 22, 241, 118], 'C2': 1464606981},
               {'C1': [86, 205, 26, 229], 'C2': -1028089654},
               {'C1': [168, 84, 155, 57], 'C2': 934161717}],
        'B2': {'D1': [-0.40664905309677124, 0.9682806730270386],
               'D2': 39690,
               'D3': 6283724944018537390,
               'D4': 22238,
               'D5': -0.26471155503237265},
        'B3': 47},
 'A2': {'E1': 2631054016,
        'E2': -0.998893695647755,
        'E3': 173,
        'E4': 1097548915036257540,
        'E5': -932318097,
        'E6': [103, 80, -22, 74],
        'E7': [17996757455290746086,
               18015970962689507427,
               1191917144997072600]}}

Пример 2

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

(b'ZPBM\x00w\x8f\xaa\x97B\xbf\xcb%Vv\x01\x86\xc8\xc8\xe4\xa4\xb3\xa5L'
 b'P\x98\xe2\xd4=\xd9\xd6\x00\x00\x00\x02\x00\x00\x00\x80\x00\x03\x00\x82\xdb'
 b'?\xef\x98\xb4\xa6\x9fp\xeb\x03\xd0\xa4\xdd\xf7h\xb1\xbdR\x1e\x83\xd0'
 b'\xa2\xb5\xa6\x95\x9a\x8c\x1dw\xb0\x03A\xe9\xf6\xd8\x16\xa1\x94Fc?k(C\xbf'
 b'P\n&>\xeem\\\x00\x03\x00S\xcf\xee\x00\xe8\x97..\x88\x9d\xb3\xeco\xbf'
 b'\xd4\xef7Y\xf0\xbf\xbc\x00\x05\x00+\x00\x00\x00_\xc5&\xd4\xa5W\x0c8\x90\x95'
 b'\x12?\xd09a\x0cO\xa2\xc2,1\x80\xf5V\x10W\xa0F')

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

{'A1': {'B1': [{'C1': [219, 63, 239, 152], 'C2': -1264148624},
               {'C1': [235, 3, 208, 164], 'C2': -570988367},
               {'C1': [189, 82, 30, 131], 'C2': -794643034},
               {'C1': [149, 154, 140, 29], 'C2': 2008023873},
               {'C1': [233, 246, 216, 22], 'C2': -1584118173}],
        'B2': {'D1': [0.9185830950737, -0.8126548528671265, 0.4656780958175659],
               'D2': 53230,
               'D3': 65468419201867187,
               'D4': -5009,
               'D5': -0.32710059912914935},
        'B3': 197},
 'A2': {'E1': 2410321730,
        'E2': -0.21207695734033494,
        'E3': 200,
        'E4': 16475490859359443170,
        'E5': -734144042,
        'E6': [38, -44],
        'E7': [11914004776315327039,
               15004130339065086508,
               3567120654867603526]}}

Вариант №23

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'YYLeH\xc7\x00@\x00o:0;dk\r\x0b-F\xf6\x8dG\xfa\xd2\xf9\xd2\xa1\x8ey|\xe1Y'
 b'T\x0f\x1b\n\x90"O\x0fZ\xf43pZ\x9d\xf6\xb6k\x88=\xafvW\xf3N?v\xac\xb6'
 b'>\xa5\xf7\x15\x14h\xa2+?\xd6{\x07#\xfdn\x887;\xa8d??o\x00\xd7\x00\x00\x00'
 b'\x02\x00\x00\x006\x00\x02\x00\x00\x008\x8c,"\xbf\xbe\x94\xc9;\xbe'
 b'\x14\x1e#\x98\x7f\x89x\xbf\xe7\x88\x8f\xeb\xd3\xc8\xf4\xf7\xbc\xfb^\xe1'
 b'\xbcO\x8d\xd4\x00\x00\x00\x04\x00\x00\x00c\x00\x02\x00\x00\x00g')

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

{'A1': 101,
 'A2': {'B1': 18631,
        'B2': [{'C1': 5224,
                'C2': {'D1': -94,
                       'D2': 43,
                       'D3': 0.3512590266670732,
                       'D4': 55,
                       'D5': 1000891455,
                       'D6': 0.9336065649986267,
                       'D7': [-13, 78]},
                'C3': [0.9635728597640991, 0.3241507112979889]},
               {'C1': -26497,
                'C2': {'D1': -119,
                       'D2': 120,
                       'D3': -0.7354201894761716,
                       'D4': -9,
                       'D5': 3170590433,
                       'D6': -0.012668091803789139,
                       'D7': [-116, 44, 34, -65]},
                'C3': [-0.2905977666378021, -0.14464621245861053]}],
        'B3': 4192916555560717101,
        'B4': 1190563143,
        'B5': 4208130514,
        'B6': {'E1': [41358, 31100, 57689, 21519, 6922, 36898, 20239],
               'E2': 1525953392,
               'E3': 23197}},
 'A3': -669229261723306409}

Пример 2

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

(b'YYL\x8f\x80\x9f\x00@\x00o\x98\x82\x92q\xff4r\xdcE\x96fX\xf5\xd6\xfa\xffv\x1d'
 b'\x86\x8f\t\xb1\x9d{)\xe8\x90=e\xce\xec\xed\x81\xc2\xc6\xe7\xa5\xe8'
 b'\t\x96\xaf\xe2\xd12\x16b\xbd\x92\xcd\xc7\xbe\xcc*F6\xfcZ\x8e?\xb1\xbe\xe6'
 b'\xe3D\xd9\xd0\xf2\xec]\xb8O\xbf\x08\x18\xa4\x00\x00\x00\x02\x00\x00\x00'
 b'6\x00\x02\x00\x00\x008:\xa2\x7f\x0f?\x0e\x8d\xd1?(\xef\xdf\x8d[!\x9e?'
 b'\xef\n\xa6k\xf0R\x1c\x18\x00\x9b\xa6\x9a\xbe\xf7\x9f\xfe\x00\x00\x00\x04'
 b'\x00\x00\x00c\x00\x02\x00\x00\x00g')

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

{'A1': 143,
 'A2': {'B1': -32609,
        'B2': [{'C1': 14076,
                'C2': {'D1': 90,
                       'D2': 142,
                       'D3': 0.06931918190534891,
                       'D4': -14,
                       'D5': 3965565007,
                       'D6': -0.5316259860992432,
                       'D7': [22, 98]},
                'C3': [-0.07168155163526535, -0.39876002073287964]},
               {'C1': -29349,
                'C2': {'D1': 33,
                       'D2': 158,
                       'D3': 0.9700500591448562,
                       'D4': 24,
                       'D5': 10200730,
                       'D6': -0.4836425185203552,
                       'D7': [58, -94, 127, 15]},
                'C3': [0.5568514466285706, 0.6599101424217224]}],
        'B3': -7457237014661532964,
        'B4': 1167484504,
        'B5': 4124506879,
        'B6': {'E1': [30237, 34447, 2481, 40315, 10728, 36925, 26062],
               'E2': -319979070,
               'E3': 50919}},
 'A3': -6491928320053948110}

Вариант №24

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'WJOQg\x00\x00\x00\x1f\xe5\x97\x96\xbe[\xa8\xdf>\xbc\x11\xd7\x17>!\xbc'
 b'Y\xe9=\xd1\x0c\xb4\xf9\xbe3\xa2\xbem?A\x11\xaa\x9d<\xee,%\x12\xbf#'
 b'\r\x00\x12\x00\x17\x00\x1c\x00!\x00&\x00+\x00\x19[\xb4>bg/\xbe<8'
 b'\xdb\xbe\x01\x07\x000\x00\x00\x00V\xd0p\xdd^\xcf\xe8\x1a\xc0\x19\xd7'
 b'B\xdd\x05\x8d\x88\n\x82\x03\x00>\x00\xa2\r.5\xc5)\xfa\x05\xfcZ\\\xfb\x9a'
 b'J\x00H8\x08\xbf[\x8a\x10m\x8d\xfaX\xd9\x1a\x00\xd92\xdd\xde3\xcf\x9a')

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

{'A1': {'B1': 892210594,
        'B2': -334292233853720123,
        'B3': 154,
        'B4': {'C1': 1,
               'C2': [{'D1': 0.4368313252925873, 'D2': 188},
                      {'D1': 0.14828135073184967, 'D2': 33},
                      {'D1': 0.11394068598747253, 'D2': 209},
                      {'D1': -0.48770177364349365, 'D2': 51},
                      {'D1': 0.9286900758743286, 'D2': 65},
                      {'D1': 0.019246133044362068, 'D2': 238},
                      {'D1': -0.5708796977996826, 'D2': 35}],
               'C3': [-12202, -8848, -12450, 6888, 6592],
               'C4': 9370452113967891159,
               'C5': [0.35225751996040344,
                      -0.17129281163215637,
                      -0.42816340923309326]},
        'B5': -0.5321087837219238,
        'B6': [-30117, 27920, -1395, -9896, 26, 13017, -8483, -12493],
        'B7': -102},
 'A2': 31,
 'A3': -0.29412761330604553}

Пример 2

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

(b'WJOQ\\\x00\x00\x00\xc6\x87\x12S\xbe\xd8\x86;\xbf\x99\x84\x87\xdc=\x9a['
 b'%i\xbf\x8c\xc4\x1b\x10?t\x1a3*?\x8a7\x13\x8f\xbe\xe5\r\x00\x12\x00\x17'
 b'\x00\x1c\x00!\x00&\x00mC~?\xa0\x00<\xbf?\x06\x00+\x00\x00\x00\x8fw'
 b'\xd4\xfa>\x8aKR_\xa4\x7fv\x1f\x91m\x08\x86\x8b\x02\x007\x00`l\xbd\xfe'
 b'\xeebf\xc4\x07\x92\xd4^a?\x00S\x18t\xbf\rV!*\xeaSL\x85\xec!\x82\x1a\xf8'
 b'\x88r}\xab')

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

{'A1': {'B1': 4273826912,
        'B2': 6833247096685355758,
        'B3': 97,
        'B4': {'C1': 63,
               'C2': [{'D1': -0.7325263023376465, 'D2': 153},
                      {'D1': 0.10768035054206848, 'D2': 154},
                      {'D1': -0.9107262492179871, 'D2': 140},
                      {'D1': 0.5629236698150635, 'D2': 116},
                      {'D1': 0.6648422479629517, 'D2': 138},
                      {'D1': -0.2794434726238251, 'D2': 229}],
               'C3': [30607, -1324, -30146, 21067, -23457],
               'C4': 10053732484830426751,
               'C5': [0.993216335773468, -0.7343845367431641]},
        'B5': -0.9534961581230164,
        'B6': [22029, 10785, 21482, -31412, 8684, 6786, -30472, 32114],
        'B7': -85},
 'A2': -58,
 'A3': -0.20612536370754242}

Вариант №25

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\xf7JOE\n\xd4\x16\x10\xf2\xef\xf6\xe1M\x9f\xf5io\x02\x00v\x00\x00\x00\xa8'
 b'RDA\x96\xb5m\xaa\xf3\xedq\xe2Pr\xbe\xda\xcb<\xbe\rl*?J\xc9\xa1>k\xc9'
 b'H\xbd\x0f\xba\x97\xc4=\xe88\xb9\x1c>R`\xae\x82"\x00\x00\x00:\x8b\x9e\xc3'
 b'\x97\xa7\x13\xbf\xcb\xd6\x1a\xbf\xb4G%\xbd\x8a\x92\xd1>\x01\x8ag\xbe'
 b'\xc4\xacli+\xa0\x96\xa2\x9e\x94=\x1c\xca$L\x00\x00\x00\xd0\x82#\x95D\x00'
 b'\x00\x00n\x00\x00\x00')

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

{'A1': 10,
 'A2': 5612038121099106004,
 'A3': -2657,
 'A4': 'io',
 'A5': [{'B1': {'C1': [-0.2366366684436798,
                       -0.18437138199806213,
                       0.6657112240791321,
                       0.31598883867263794,
                       -0.04902021214365959],
                'C2': [-17905, -15209, -6083, -18120, 15900, 24658, -32082]},
         'B2': -1013019846},
        {'B1': {'C1': [-0.5767759680747986,
                       -0.6048399806022644,
                       -0.04035158455371857,
                       0.409321129322052,
                       -0.22611238062381744],
                'C2': [-21308, 26988, -24533, -23914, -27490, 7229, 9418]},
         'B2': -1792834864}],
 'A6': {'D1': 12280671415853929128, 'D2': 243},
 'A7': 29165}

Пример 2

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

(b'\xf7JOE\xeb\xb1zI\xfc\x9f\xf8\x083\xda\xf9rn\x02\x00v\x00\x00\x00#'
 b'\x99\xcb!\xad\xe9\xf6\xb0\xd48(\xc6\x1b\xfe\xbdk\xa3A>\x08_\xd1\xbeQ\x9b'
 b'~\xbf\x0f\xe1^?\xa1\x97\xb5\xbc\x04\x94]\x12a!8\x9fZ1"\x00\x00\x00'
 b'M\xdd\xc3\xeb\x13\xe6l?\xa4\xf0t?V\x9ac\xbf\xa7j#?\xd0\xe0\x07\xbfr\xe1$\x04'
 b'\xce#0\xc3\xd2v\x83v\x0cuL\x00\x00\x00,\xd0a\xd0D\x00\x00\x00n\x00\x00\x00')

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

{'A1': -21,
 'A2': 3677462461764172465,
 'A3': -1574,
 'A4': 'rn',
 'A5': [{'B1': {'C1': [-0.12407641112804413,
                       0.18909995257854462,
                       -0.40892815589904785,
                       -0.9945574402809143,
                       0.8706216216087341],
                'C2': [-26719, -17227, -27644, 4701, 8545, -24776, 12634]},
         'B2': -339485363},
        {'B1': {'C1': [0.9253856539726257,
                       0.9567968845367432,
                       -0.8890737295150757,
                       0.6383461356163025,
                       -0.5307741165161133],
                'C2': [-7822, 1060, 9166, -15568, 30418, 30339, 29964]},
         'B2': -798896084}],
 'A6': {'D1': 12751636324751743267, 'D2': 212},
 'A7': 10296}

Вариант №26

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'JVP\xdb\x90\xbb\x1f\x97YH\x00\x00\x00\x98\xe0$\x82y\x0e\xaa\xfeCZ\x86'
 b'\x01\xfe\xbd\r<z\x85`\xdb\xf5\xf2V\x86\x1e|Db\x9a\xd3\x02\x00\x00\x00\x19'
 b'\x00\x00\x00\xb2\xedzllin\xf7\x02D\x07\xd6\n\x02\x00<\x00\x00\x00\x16X'
 b'+\x00\x00\x00\x05\x00\x00\x005\x00\x02\x00\x00\x00:\x00\x00\x001`'
 b'\xa6\x00@\x00\x00\x00')

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

{'A1': 2535439248,
 'A2': 89,
 'A3': {'B1': {'C1': [{'D1': 254,
                       'D2': 2050756029,
                       'D3': -123,
                       'D4': 96,
                       'D5': -2597},
                      {'D1': 242,
                       'D2': 2082375254,
                       'D3': 68,
                       'D4': 98,
                       'D5': -11366}],
               'C2': 60850},
        'B2': 'zllin',
        'B3': [247, 2],
        'B4': 10903601,
        'B5': {'E1': [1860, 2774], 'E2': 22550}},
 'A4': -96248526997757800,
 'A5': 25582147}

Пример 2

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

(b'JVP\xdb\xee\xcc\xbe*9O\x00\x00\x00\xa2r\xff[\xfef\xea\x03"\xa6t\xeedV\xc5'
 b'\xa0\xd8`\x13\xaf\x9eA\xa2\x1b\x8f+\xbbY;\x87\x02\x00\x00\x00\x19'
 b'\x00\x00\x00\xbadwthrjw\xc7\x91\xb9\xc8.6\x8f\x11\xa2\xe2ft\x05\x00=\x00\x00'
 b'\x00lA+\x00\x00\x00\x06\x00\x00\x005\x00\x02\x00\x00\x00;\x00\x00'
 b'\x00\x87\x8d\xd5\xe5G\x00\x00\x00')

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

{'A1': 717147374,
 'A2': 57,
 'A3': {'B1': {'C1': [{'D1': 100,
                       'D2': -660552362,
                       'D3': 96,
                       'D4': 19,
                       'D5': -24913},
                      {'D1': 65,
                       'D2': 730799010,
                       'D3': -69,
                       'D4': 89,
                       'D5': -30917}],
               'C2': 25786},
        'B2': 'wthrjw',
        'B3': [199, 145],
        'B4': -438989433,
        'B5': {'E1': [51385, 13870, 4495, 58018, 29798], 'E2': 16748}},
 'A4': 282151169315271330,
 'A5': -294345182}

Вариант №27

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'3JACJ\xb0j\x19\xc4\x0e\xae\xc7\xc6\xfd\xbe&\x05\x111iy\xec\xaa\xf8\xa80lc'
 b'\xd8n2\xd1\xedM\x0cK\x93\xbf[f\x059 \xaaX&\x89I\xc9q\xbd\xa1!\xc6\x7f\x96'
 b'\x03\xd9\xeb\x8c\xc1X}\xf3\x05\xfd\xac\x15\x9aby\x00\x00\x00\x02\x00'
 b'g\xd7\x00\x03\x00\x00\x00\x7f\x88\xc1t*a\x00\xd5\x11\xe8?\xacd\x8a\t\xbf\x03'
 b'E\xb6}Y\xdc\x0f(+\x81/\x0c\x9f\xb9W\xc6\xe3\xdd\x93\xe7Y\x03t\xe0\xe4'
 b'\xf2\x00\xc6q\xb7G\xa2\xa9\x8e')

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

{'A1': 45162,
 'A2': 1856625090222292414,
 'A3': [{'B1': 637866289, 'B2': 27001},
        {'B1': 3970627752, 'B2': 12396},
        {'B1': 1675128370, 'B2': 53741},
        {'B1': 1292651411, 'B2': 48987},
        {'B1': 1711618336, 'B2': 43608},
        {'B1': 646531529, 'B2': 29117},
        {'B1': 2703345279, 'B2': 38403},
        {'B1': 3656092865, 'B2': 22653}],
 'A4': -217711188,
 'A5': 362439289,
 'A6': {'C1': [{'D1': 23004, 'D2': [3880, 11137, 12044, -24647, 22470]},
               {'D1': -7203, 'D2': [-27673, 22787, 29920, -6926, 198]}],
        'C2': -41,
        'C3': [29111, 18338, -22130],
        'C4': -2000587734,
        'C5': 1627444497,
        'C6': [-6081, -21404, -30199]},
 'A7': -0.5127824544906616,
 'A8': 125}

Пример 2

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

(b'3JACJ\x1f\xb2\x9eYIY\xf59\xfa\xf3\xc6\x1d\xba\x9c\x7fj\\\x14\x17Yr\x9b\x9f'
 b'\x19\x1d\xed\xc0\xfb\xfc\xd4\xcc\x14\xc5\xfc\x14F\xbe\xfc;\x95m\x1b)'
 b',\xa7\xcd\x80\xb7I\xc8\x07\xd0\xcdV\xb1>\xbb;`\x14\xa6\xdd\xba\xd7wa\x00'
 b'\x00\x00\x04\x00g\xf7\x00\x03\x00\x00\x00\x97\x97<,\xda\xebL\xe9~'
 b'\x1f\x1c\x9b\xa7\xc8\x86<Z~;\xde\xe0r0\x86\x8f\xaca\x1efZU^^\x19d\xe8\xd1'
 b'n\x80^\x94\x95X\xcfW\xffeP\xa0\xd9\xd3(\xf3\xdb#\xddu\xfb/\x9b\xc6'
 b'\xcf\xc6\x84jx\xc8\xbf\xd1.8\xa5((')

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

{'A1': 8114,
 'A2': 11410231781634996979,
 'A3': [{'B1': 3323837084, 'B2': 32618},
        {'B1': 1544820569, 'B2': 29339},
        {'B1': 2669223405, 'B2': 49403},
        {'B1': 4241804308, 'B2': 50684},
        {'B1': 340180732, 'B2': 15253},
        {'B1': 1830496556, 'B2': 42957},
        {'B1': 2159495624, 'B2': 2000},
        {'B1': 3445010750, 'B2': 47931}],
 'A4': 1611966173,
 'A5': -1160284319,
 'A6': {'C1': [{'D1': -8078, 'D2': [12422, -28756, 24862, 26202, 21854]},
               {'D1': 24089, 'D2': [25832, -11922, -32674, -27499, 22735]},
               {'D1': 22527, 'D2': [25936, -24359, -11480, -3109, 9181]},
               {'D1': 30203, 'D2': [12187, -14641, -14716, 27256, -14145]}],
        'C2': -9,
        'C3': [-11986, 14501, 10280],
        'C4': -1757664038,
        'C5': 3947686270,
        'C6': [7964, -25689, -14202]},
 'A7': 0.0133357597514987,
 'A8': 222}

Вариант №28

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

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

Пример 1

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

(b'HFK\xafB\x00q\xe4\x02\x00\x00\x00Y\x00W\x99P<y\x80\x96+\xeeT,#!\xa5'
 b'\xf0z\xcc\x0e\x00\x00\x00\x16\x00\x00\x00\xa2\xcev\xe0k\x87\xa7\x07$\x8e+iY'
 b'\xbf\xce\xfb]\xfd\x01i2\xe8\xa3\x84\x1d\xbe\xe0T\x1e\x00\x00\x00\xd0'
 b'\xc2\x16\x14\x07\x97\xf9\x16\xeae\x13\x1b1\xdcD+\xbd\xd5<rlF\xc7?\xe6'
 b'\xbf\xb4\x88#\xd0\x9fN\xd1\xbf')

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

{'A1': {'B1': 84,
        'B2': {'C1': -52,
               'C2': [{'D1': 1011915095, 'D2': 731283577},
                      {'D1': 590107886, 'D2': 2062591265}],
               'C3': 52898,
               'C4': {'E1': -2022973322,
                      'E2': [1959, -29148],
                      'E3': -0.8492609858512878,
                      'E4': -50,
                      'E5': [24059, 509],
                      'E6': -2252330308115877271}},
        'B3': [49872, 5142, 38663, 5881, 26090],
        'B4': -600761581,
        'B5': 11076,
        'B6': -67,
        'B7': -43},
 'A2': 58481,
 'A3': [-0.695285451456193, -0.2704238445859446]}

Пример 2

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

(b'HFK\xafB\x00\xcd\x05\x03\x00\x00\x00Y\x00\xbc\xa2\xc7_sr\xb5\xe0%|'
 b'\x8a\x01\x1d\n\xd65\xc6\x0e\x00\x00\x00\x16\x00\x00\x00,?\xacO|T\xdf\xd8i'
 b'33C\x01\xbf\x1c\xe0\xf5M\x14\x06m\xb5\xe2\xd8\xa2I%h\x1e\x00\x00\x00\xb6'
 b'\x82\x15[b\xd3\xec\x0f\x863\x04\x1cbD\x8b0^S8\xda\r|\xd8\x02\xc3'
 b'\xbf\xa0>\xf7\xa3M\xa2\xd9\xbf\xccS\x98\x13i\x96\xd9\xbf')

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

{'A1': {'B1': 104,
        'B2': {'C1': -58,
               'C2': [{'D1': 1606918844, 'D2': 3769987699},
                      {'D1': 25852965, 'D2': 903219741}],
               'C3': 16172,
               'C4': {'E1': 1417433004,
                      'E2': [-10017, 13161],
                      'E3': -0.504931628704071,
                      'E4': 28,
                      'E5': [62944, 5197],
                      'E6': 2686857705103387910}},
        'B3': [33462, 23317, 54114, 4076, 13190],
        'B4': 1147280388,
        'B5': 12427,
        'B6': 94,
        'B7': 83},
 'A2': 1485,
 'A3': [-0.14852434212999, -0.4005312062481412, -0.3998053256375982]}

Вариант №29

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'.TMVV\x00\x02\x00\x00\x00-\x00\x00\x00G\x00\x00\x00\x02\x00Z\xaf\x00\x02'
 b'\x00\x00\x00\\\xbf\xef\x9e\xa8<$\x9ap\x92?\xc8\xfc\x16\xba\xf6YH\xba\x7fw'
 b'\xf0F\xce\xe6\xb3pd\x18}\xd0\x0b[\xac\xcbH\x87\xa3\xe4\xaa\x02qzj\x00'
 b'\x00\x00\x02\x00\x00\x00E"\x15\xd5A\xceYF\xc1\xcb^\xdcfq\xcf\xdd')

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

{'A1': [{'B1': -17793, 'B2': 119, 'B3': -16, 'B4': 5102269086216493181},
        {'B1': -12277, 'B2': 91, 'B3': -84, 'B4': 14648106926008304241}],
 'A2': {'C1': 'zj',
        'C2': 571856193,
        'C3': 206,
        'C4': 89,
        'C5': 18113,
        'C6': -53,
        'C7': 94,
        'C8': -36},
 'A3': 'fq',
 'A4': -81,
 'A5': [-49, -35],
 'A6': -0.9881173300426109,
 'A7': {'D1': -110, 'D2': 0.19519313935297533}}

Пример 2

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

(b'.TMVV\x00\x05\x00\x00\x00-\x00\x00\x00l\x00\x00\x00\x02\x00\x7fA\x00\x03'
 b'\x00\x00\x00\x81?\xe6\xa8\x1f\x8e\x93\\\x16\xb6?\xcb)a\xc7\x18\x1d`wll'
 b'@O\x05\xfb\x1f\xb1`\x91\xc2\xdd\xe1z\x98\xb1\xd7Ue\xf2`\xc8\xd7\x815\xba'
 b'\xcdiVZ\xcaI^w\x10\xfa\x9ba\x1f\x82r\xd9\xe7\x0e-/\x85\xaf2>3\xe3\xee\xfa'
 b'\x1e\x0fw\xe2\x8bghl\x00\x00\x00\x03\x00\x00\x00i\x8b\x11\x8c\xc8'
 b'\xee\xf1\x92\x16G\xe1\x18zu\x91\xc4Y')

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

{'A1': [{'B1': 30572, 'B2': 108, 'B3': 64, 'B4': 5694233417418314178},
        {'B1': -8735, 'B2': 122, 'B3': -104, 'B4': 12814805161052522711},
        {'B1': -32459, 'B2': -70, 'B3': -51, 'B4': 7590354046840370960},
        {'B1': -1381, 'B2': 97, 'B3': 31, 'B4': 9399814958674161541},
        {'B1': -20686, 'B2': 62, 'B3': 51, 'B4': 16424339898082255499}],
 'A2': {'C1': 'ghl',
        'C2': -1961784120,
        'C3': 238,
        'C4': 241,
        'C5': -28138,
        'C6': 71,
        'C7': 225,
        'C8': 24},
 'A3': 'zu',
 'A4': 65,
 'A5': [-111, -60, 89],
 'A6': 0.7080228600196985,
 'A7': {'D1': -74, 'D2': 0.21220037671467207}}

Вариант №30

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'KGUL\x13\xcez\xc5\x03\nf\x00\x00\x00\x07\x00\x1fq\x7f\x00\x00\x00P\x00'
 b'\x02\x00\x00\x00\x94\x00\x98vscsfha/0\xba\xcf\x08:2\xe9_\xa1\x95\x90\xf1T'
 b'x\xa1U\xef\x0ewA\xb2\\\xbe\x8d_\x07\x80\xb8\xb2t\xc5\xb2\x05X\x9f\xc9\xd8'
 b'\x83Y=$\xe4$\x00&\x00;T\x02\xcf_\xf2\x8b\x9aT\x01\xef\\d\x13NJ\xffX\xde'
 b'A\x88\xe1P\x9c\x89|Px\xe4G,>\xe8\xad\xfe\xbc\xd9R\xa4>\xc9\n2?.\x8b\xd8'
 b'?z\x05u\xbe\xa3\xae\xb6\xbf:x X[\xc0\xb7\xda\x1c\xdb\x83\xeb\x10\x9dn'
 b'\x80\xa5')

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

{'A1': {'B1': 19,
        'B2': 52858,
        'B3': 3305310822,
        'B4': 'vscsfha',
        'B5': 113,
        'B6': 127},
 'A2': {'C1': 58404,
        'C2': [{'D1': 12080,
                'D2': -0.0015795298386365175,
                'D3': 50,
                'D4': -379608683,
                'D5': -28431,
                'D6': 6086792286846220097},
               {'D1': -19876,
                'D2': -0.27611562609672546,
                'D3': 128,
                'D4': -1196264251,
                'D5': -19963,
                'D6': 6386044728388435236}],
        'C3': {'E1': 1409470303,
               'E2': -969511609167815580,
               'E3': 4942,
               'E4': 5404135789473358160,
               'E5': 2626255952,
               'E6': 2028226348,
               'E7': [0.4544524550437927,
                      -0.02652866393327713,
                      0.3926559090614319,
                      0.681821346282959,
                      0.9766457676887512,
                      -0.31969231367111206,
                      -0.7283954620361328],
               'E8': [22619, -16201]}},
 'A3': [55836, 56195],
 'A4': {'F1': 3943734638, 'F2': 32933}}

Пример 2

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

(b'KGULa\xb7ip\xaa\xffZ\x00\x00\x00\x06\x00\x1f\xd4\xd7\x00\x00\x00O\x00'
 b'\x03\x00\x00\x00\x93\x00\x99shepgx\xf8\x1d\xbf=\xf6z^N[/\x03\xc2\xeba\xa4'
 b'\xdc?\xc4\xeb\xa7\xf2a{?\t\xaf\xc2{n\x16\xfd,g\x898W\xa9%\xcd\xf9\x91\xa0$'
 b'(\x00%\x00:/\x01\x86\x02\x92\x8eT\xf8\x16Mg_Gcc\x91\x18\x85\xf1\xa15\x1c\xc0'
 b'K\xbefG\xc3\xfav\xbfKl\x8a\xbe\xb8?g<\x96\xb5 ?e\x97\xf3?y\xd2_\xbf'
 b'C\x9b\xd7=\xe7\xa5C.\x93\xc1\xc1"\x8c\xe7M\x17\xb0}\x86<\xb8\x9b*')

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

{'A1': {'B1': 97,
        'B2': 46953,
        'B3': 1890254682,
        'B4': 'shepgx',
        'B5': 212,
        'B6': -41},
 'A2': {'C1': 9256,
        'C2': [{'D1': -2019,
                'D2': -0.7420421838760376,
                'D3': 94,
                'D4': 1314598659,
                'D5': -15637,
                'D6': 7035990684304386034},
               {'D1': 24955,
                'D2': 0.5378381013870239,
                'D3': 123,
                'D4': 1847000364,
                'D5': 26505,
                'D6': 4059899568932360608}],
        'C3': {'E1': 788628994,
               'E2': -7886272472976365729,
               'E3': 18275,
               'E4': 7174542644941501724,
               'E5': 3226189414,
               'E6': 1204025974,
               'E7': [-0.794624924659729,
                      -0.3598587214946747,
                      0.01839691400527954,
                      0.8968498110771179,
                      0.9758662581443787,
                      -0.7640966773033142,
                      0.11310818046331406],
               'E8': [11923, -15935]}},
 'A3': [8844, 59213, 6064],
 'A4': {'F1': 2105949368, 'F2': 39722}}

Вариант №31

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'YYFQf\x03\x00\x00\x003\x00\x00\x00C\xe7\x8c\xea\xbd6O\xb1G\x95\x10\xc4;\xd3U'
 b'\xdf\x9e\xde\x8b>\xc8\xceTT\x9d\xbe6\x00\xf5\xda\xe4LN\x1a\x90\xe2\x8c\x00t'
 b'xy\xf6\xbe\xacD0\x90 2\x80b\x9508j\x9f\x01P\t\xb8W\xa5=h\xfa\xc7\xd5$}\xda?'
 b'\xaa6\xb4Y\xb8D\xe2\xbf\x86_\xfeAA\x08\xe8\xbf@\xe0\x04\xfeh\x86\xd7?'
 b'\x10\x97\xd9\xa5\x9e\x89\xde\xbf\xc4S6\x0c\xd6R\xdf\xbf\x06\xc6\xf3s'
 b'c\x99\xe3?\x98\x86\xeb\xc3\xc9\x13\xe7?\xe9\xd7\x157\xfdL\x9a\xde'
 b'\xb3\xbf\x81\x95@\x00')

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

{'A1': {'B1': 'txy',
        'B2': [{'C1': 67, 'C2': -25},
               {'C1': -116, 'C2': -22},
               {'C1': -67, 'C2': 54},
               {'C1': 79, 'C2': -79},
               {'C1': 71, 'C2': -107},
               {'C1': 16, 'C2': -60},
               {'C1': 59, 'C2': -45},
               {'C1': 85, 'C2': -33}],
        'B3': 0.27318280935287476,
        'B4': 52936},
 'A2': -0.30728399753570557,
 'A3': {'D1': 3612045438136139510, 'D2': 25216},
 'A4': 16325577572817885941,
 'A5': {'E1': [-10263, 14101, 19709],
        'E2': 56986,
        'E3': -1786658893,
        'E4': {'F1': 1782067349,
               'F2': 4442053055412699551,
               'F3': [0.4138881766993223,
                      -0.5708886863737537,
                      -0.7510076798380261,
                      0.3675787430433992,
                      -0.477149641001561,
                      -0.48943091576193987,
                      0.6124741806690401,
                      0.7211655451357784]}}}

Пример 2

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

(b'YYFQf\x03\x00\x00\x003\x00\x00\x00\x93\x9fhd\x06Ne\x17\xc9K\xed'
 b'\xc9\x08\xbe\x8f}\xf3\xafG\xbeq\xce@\x94\xe7\xbb6\x00G:_\xce\x00P\x87'
 b'\x18\x8c\x00lty\xfd\x88\xa8}x\xe2\xca[qw\x87\x97\x10\x19\xf8\xaa\x88\xfd'
 b'\xe5\xd9o\t\x0cz\xa2w$\x1d\xe3?\xc0\xc1\x1f6\xf5\x01\xd6?$e\x0f\xda'
 b'\xc7(\xe3\xbf\xb6\xd6\xeb\x89g\xca\xee?\xc0\x7f\xba\x89\x9dC\xc2\xbf'
 b'\xcaS\xba\xd6\x90\x96\xe1?<\xef0\x01fz\xdc?j{{FjV\xeb\xbf2\xfe\xe6\x14'
 b'\xe3\xe2\xd9g\x84\xc1.\x84@\x00')

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

{'A1': {'B1': 'lty',
        'B2': [{'C1': -109, 'C2': -97},
               {'C1': 104, 'C2': 100},
               {'C1': 6, 'C2': 78},
               {'C1': 101, 'C2': 23},
               {'C1': -55, 'C2': 75},
               {'C1': -19, 'C2': -55},
               {'C1': 8, 'C2': -66},
               {'C1': -113, 'C2': 125}],
        'B3': -0.19500713050365448,
        'B4': 52849},
 'A2': -0.007067233324050903,
 'A3': {'D1': 6614348009879144701, 'D2': 30577},
 'A4': 1767469343158778439,
 'A5': {'E1': [-462, 5350, -7453],
        'E2': 26585,
        'E3': -2077310588,
        'E4': {'F1': 420517767,
               'F2': 680001650580564728,
               'F3': [0.597307428037142,
                      0.3438694981150796,
                      -0.5987281092631389,
                      0.9622075742506329,
                      -0.14268845772767058,
                      0.5496296113875527,
                      0.44497060886691364,
                      -0.8542987228973804]}}}

Вариант №32

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\xa0EJAL\x00\x00\x00\x04\x00\x00\x00%\x00\x00\x00\x04\x00B\x00\xa9\xd8cI'
 b'\x15RQ\xbd2\xbf\x9e\x0b\xfd\xc4m\xf1\x80gdal\x9e\xf1^\xc0\xfa\xber|7\xa5\xf1'
 b'`GM\xcd\xde\x96\x1c\xc0A\x89\xc1!\x18\x89k\x00\x00\x00\x02\x00\x00\x00)\x00'
 b'\x06\x00+\xbf\xb9\x8f?\xa42B\xc0JC\xc2\xc7w\x00\x00\x00\x02\x00\x00\x001'
 b'\x00\x02\x003?\xd3\xac\xdfT\xd0\x85<z\x85\x1c\xfd\xc7\x00\x00\x00'
 b'\x02\x00\x00\x005\x00\x04\x007\xbf\xe39\xber\xd9\xf9\xaaN\x1a\xcf'
 b'\xd7\xbb\x00\x00\x00\x02\x00\x00\x00;\x00\x05\x00=?\xd5\x87\xfaq\xa9'
 b'+\xf4>\xf2\xf4%w\x1516\x02\x1d1\xa1\xa7\x86S\xf8\x00\x03\x00\x00\x00\xa6'
 b'\x82\x93\xd1\x08\x9a.Ch\xb2')

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

{'A1': 'gdal',
 'A2': [{'B1': {'C1': 107,
                'C2': [-98, -15],
                'C3': [94, -64, -6, -66, 114, 124],
                'C4': -0.09984205015849579},
         'B2': 1245954759},
        {'B1': {'C1': 119,
                'C2': [55, -91],
                'C3': [-15, 96],
                'C4': 0.3074262932078289},
         'B2': 2055544061},
        {'B1': {'C1': -57,
                'C2': [71, 77],
                'C3': [-51, -34, -106, 28],
                'C4': -0.6007988208000843},
         'B2': 1310379991},
        {'B1': {'C1': -69,
                'C2': [-64, 65],
                'C3': [-119, -63, 33, 24, -119],
                'C4': 0.33642445659341935},
         'B2': 1056109605}],
 'A3': {'D1': 13826,
        'D2': 489791911,
        'D3': 34387,
        'D4': 248,
        'D5': [119, 21, 49],
        'D6': 130,
        'D7': 2479949978,
        'D8': 776169650},
 'A4': 15592386690811018546,
 'A5': -0.029342618097403683}

Пример 2

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

(b'\xa0EJAL\x00\x00\x00\x03\x00\x00\x00%\x00\x00\x00\x04\x00C\x00'
 b'\xab\x02\xef\xb9u9\x0e\x9dT\xbf\xd3\xd7\xa8S\x0c\xd1\xf4ljr/\xc8e\xf9'
 b'9\n\x1d\xc6\xc6\xd0P\xdds\xa3\x0bCw\x89F\xf3\x8c\xd9\xd1\r\x89\x8a\x95b'
 b'\x00\x00\x00\x02\x00\x00\x00(\x00\x03\x00*?\xb2\xb2 1\xf7\x150\xac:\xe5\xa5'
 b'\xff\x00\x00\x00\x02\x00\x00\x00-\x00\x05\x00/\xbf\x8f\xf2\x12\xd1\xca\x0f'
 b'\x00\xde7[\x89\xe7\x00\x00\x00\x02\x00\x00\x004\x00\x06\x006?\xbeJ<q\xdb'
 b'\x1b \xce(\xc9\xad\xfd\x00\x00\x00\x02\x00\x00\x00<\x00\x05\x00>?'
 b'\xde\x9d\x04\xfb~\xc6\xb8\xc7\xa5L\xf9>\xb2y\x17\xa0\xe2{[\xda\x0f".h'
 b'\x00\x04\x00\x00\x00\xa7\\>xTS\x809\xc1\xcd')

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

{'A1': 'ljr',
 'A2': [{'B1': {'C1': 98,
                'C2': [47, -56],
                'C3': [101, -7, 57],
                'C4': 0.07303048343517982},
         'B2': 2889541029},
        {'B1': {'C1': -1,
                'C2': [10, 29],
                'C3': [-58, -58, -48, 80, -35],
                'C4': -0.015598437335263338},
         'B2': 3728169865},
        {'B1': {'C1': -25,
                'C2': [115, -93],
                'C3': [11, 67, 119, -119, 70, -13],
                'C4': 0.11832025317844996},
         'B2': 3458779565},
        {'B1': {'C1': -3,
                'C2': [-116, -39],
                'C3': [-47, 13, -119, -118, -107],
                'C4': 0.4783337074287419},
         'B2': 3349499129}],
 'A3': {'D1': 41186,
        'D2': 2069617167,
        'D3': 8750,
        'D4': 104,
        'D5': [62, -78, 121, 23],
        'D6': 92,
        'D7': 1048073299,
        'D8': 2151268813},
 'A4': 211591620629273940,
 'A5': -0.3100376902614521}

Вариант №33

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'UOM\x10\xfeIg>\x02\x00>\x00\x00\x00\x1dH\xb1\xad\xe01\xe4r\xabn'
 b'\xcb\xbf\x0e\xaeF\x00[\x00p\x00\x04)w\xd3\xa7\x82\x1c\xb6.\x1e$\x972E'
 b'\xe5G\x02\x00\x82\x00\x00\x00 +E{>\x04ec\xf7\xff\xd7\r\xabg(\xeb'
 b'\xa9\x15\x06\x00\x00\x00@\x00\xd0\xbf\xbaL\xc7\xc3\xcb\xbf\xa8bX\x10'
 b'\xa3n\x07\x03\x00\x00\x00X\x00\x96\xdf\xc3\xdb\xb7\xea\xe0\xbf\x0b\x8dD'
 b'\n\xafw\x7f\x03\x00\x00\x00m\x00\xecM\x19\xea\x9e \xe3\xbf\x1b\xac'
 b'5\x8a\xa3\xf7\x10\x99')

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

{'A1': 0.22586819529533386,
 'A2': {'B1': 'ec',
        'B2': 2914076701,
        'B3': -0.2143148718827339,
        'B4': 14,
        'B5': 174,
        'B6': [{'C1': -5336,
                'C2': 5545,
                'C3': [247, 255, 215, 13, 171, 103],
                'C4': -0.21691218611294838},
               {'C1': -23792,
                'C2': 1902,
                'C3': [168, 98, 88],
                'C4': -0.5286521236694053},
               {'C1': -20726,
                'C2': 32631,
                'C3': [11, 141, 68],
                'C4': -0.5977320263140746}],
        'B7': 10500,
        'B8': -2102930569},
 'A3': 506377756,
 'A4': {'D1': 38692, 'D2': 1206207794, 'D3': [-1976194021, -1726941277]},
 'A5': [11040, 31557, 1086]}

Пример 2

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

(b'UOM\x10\x82\x8f\xe3>\x02\x00>\x00\x00\x00\x1d\x87\xa8\xd28\x11'
 b'\x97\x1a\xc2\xd5\xc8?R\x8aD\x00Y\x00o\x00\xde\xa3\x14y\x96\x8a\xe8\xb7"O'
 b's\xc5\xe3\x85\x17.\x03\x00\x81\x00\x00\x00\xe5\xc9\xe1\xed\x7f\x93vp'
 b'X\x82\xbb\x822(\x13\xf8\x04\x00\x00\x00@\x00>\xb4I\xc4\xf2\x8b\xea?\xc7\xb9'
 b'\xec\xb3 6\r\x03\x00\x00\x00V\x00\x087\x89\x82rb\xd1?,x\xad\xa9\x88'
 b']\x9e.\x04\x00\x00\x00k\x00~y|\xbbh+\xe9\xbf\x12d\xc4\xfb^\xae\xf9\x14!@\x02'
 b'\xbd')

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

{'A1': 0.44445425271987915,
 'A2': {'B1': 'vp',
        'B2': 3534259997,
        'B3': 0.19402338312478107,
        'B4': 82,
        'B5': 138,
        'B6': [{'C1': 10290,
                'C2': -2029,
                'C3': [88, 130, 187, 130],
                'C4': 0.8295835336445021},
               {'C1': 8371,
                'C2': 3382,
                'C3': [199, 185, 236],
                'C4': 0.2716337466016374},
               {'C1': 23944,
                'C2': 11934,
                'C3': [44, 120, 173, 169],
                'C4': -0.7865489637222678}],
        'B7': 41950,
        'B8': -1969850092},
 'A3': 1327675368,
 'A4': {'D1': 50547,
        'D2': 773293539,
        'D3': [-71015406, 351907422, -1123925983]},
 'A5': [-13851, -4639, -27777]}

Вариант №34

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'LVB\x02\x00\x00\x002\x00\x00\x00\xe1o\x85-\x01\xf49X84\xf5q]keT\x00'
 b'\x00\x00\xa2\xe3\x05?\x19\xee\xbc\x12\xd6(\xd770\xdb\x0f\xa0\xfd\xe2\xc82tr'
 b'7\xd9\xb9\xdb\x87\x1f\xe2\x96\xe1F\xd1\xc3-\xb1\xa9\x12\x81\xa5O\\'
 b'\xf0@\xd1\xc04\xbf\x18d4\x00B\x00\x02\x00P\x00\xc4\xdb\xda\xf2\xdar\x8a\xbe')

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

{'A1': 'tr',
 'A2': 28641,
 'A3': 133,
 'A4': 972292397,
 'A5': -181127080,
 'A6': 1701535089,
 'A7': {'B1': [{'C1': -608577225, 'C2': [135, 31], 'C3': -5679668251439556894},
               {'C1': -1518267735, 'C2': [79, 92], 'C3': 7212725036527993072}],
        'B2': 13729912698695244740},
 'A8': {'D1': 0.5230046510696411,
        'D2': 314371609,
        'D3': 11533678170860890326,
        'D4': [253, 226, 200, 50]}}

Пример 2

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

(b'LVB\x05\x00\x00\x002\x00\x00\x00\xd3\xc6\xff_\x98\x04\x01\xd2PP\xe8\xbeT'
 b'\xce\xa3W\x00\x00\x00\xaf\x86x>Q6\xcd\x96\xb2<\x0c\xe1A\xb9\x07\xf9i\xf7'
 b'\xa8\x1fufoxl]\xdd \x1a$\xfa}\x07\xe5I\xbc\xe8\x82\x1d]H\xf8\xe7\xb1u\xf8'
 b'\x7f\xb9R\x1c\xc4\xb2J7\x00E\x00\x02\x00S\x00/\xff;\x85\x8b\xb4\xbfg')

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

{'A1': 'ufoxl',
 'A2': -14637,
 'A3': 255,
 'A4': 17078367,
 'A5': -397389614,
 'A6': 2748208318,
 'A7': {'B1': [{'C1': 438361437, 'C2': [36, 250], 'C3': 2126517869463537533},
               {'C1': -403158947, 'C2': [177, 117], 'C3': 5382580130587181048}],
        'B2': 7475892417787068207},
 'A8': {'D1': 0.24270127713680267,
        'D2': -1764936111,
        'D3': 17944514932880719026,
        'D4': [105, 247, 168, 31]}}

Вариант №35

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'CIXUD\xcd/\xb6\xfc\xbdQ\xbe\x05)\x1cD \xfd\x00\x00\x00\x04\x00J'
 b'\x00\x00\x00\x06\x00\x00\x00N\x00\x00\x00\x08\x00T\x00\x00\x00\x07\x00\x00'
 b'\x00\\?\x121\xe6?\xb7}\xd6H\x0c\x99\x10\x82\xa6\xbaH\t\xe5\x00c\xbf\xe4'
 b'\xd3\x19\x8c\x8d8,vyxh\x9c\xcdw>4\xe1lhghibrv\x8c\xc3[\x91\xdf\x8a\xab\xd2'
 b'!y\xc8\x9az\xa6\x90\xc3\xc4\x0e_\xea\x9c\xcf.8?k\xc2\xe8\xbe\xec\xe2\x9b'
 b"\xbe9\xe4*?z\x8bg='\xda\xfd>\x0c\xee\xc2<\xb5\xc3\xc5\x8e]]v\xa8\x0eD`"
 b'\xd1\xb9r7\xe5F\x14b\xb2\xee\xc0#')

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

{'A1': 4957671227775603134,
 'A2': 86580292,
 'A3': 8445,
 'A4': [{'B1': 'vyxh', 'B2': [156, 205, 119, 62, 52, 225]},
        {'B1': 'lhghibrv', 'B2': [140, 195, 91, 145, 223, 138, 171]}],
 'A5': {'C1': 0.5710738897323608, 'C2': 0.0917638708020585, 'C3': -32090},
 'A6': -1169683995,
 'A7': {'D1': 15141517324688467600,
        'D2': -4340328335757488338,
        'D3': 56,
        'D4': [0.9209427833557129,
               -0.4626663625240326,
               -0.18153443932533264,
               0.9786896109580994,
               0.04098032787442207,
               0.13762953877449036,
               0.022188076749444008],
        'D5': [-1906483850, -1475460000, -776375753],
        'D6': 16520914697196584995},
 'A8': -0.6507690186642825}

Пример 2

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

(b'CIXU$Z\x04\xdc\x06_suw\x1bl9\xa3m\x00\x00\x00\x07\x00J\x00\x00\x00\x07'
 b'\x00\x00\x00Q\x00\x00\x00\x04\x00X\x00\x00\x00\x07\x00\x00\x00\\<\xf7'
 b'F\x94?\xbc\xbb\xdd\xcd\x1d:0+R\x1f\'-)\x00c?\xe4/W\xad\xbe>"unqsdta\x8a\xb1a'
 b'$\x1e\x9b\xf7ahsk^f\x1e\xe4!\x9e\xd5F\x11\xec\x02;\x17(\x93(\x9dL&\xe0'
 b'l\xf4\xc9r>\x99U\xef=\xac\xf7k\xbeKn\x87>\xdd#c\xbf0\x1f\xa8?\x04\xa3('
 b"\xbe\x93D\x9d\xda\xda\xac1\x00'?\xcb*\xee/\xce\xdf/|\xa7x3\x8f\xfd")

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

{'A1': 2619411476315599733,
 'A2': 1998285881,
 'A3': -23699,
 'A4': [{'B1': 'unqsdta', 'B2': [138, 177, 97, 36, 30, 155, 247]},
        {'B1': 'ahsk', 'B2': [94, 102, 30, 228, 33, 158, 213]}],
 'A5': {'C1': 0.030185021460056305, 'C2': 0.11224161393804688, 'C3': 11090},
 'A6': 522661161,
 'A7': {'D1': 5049076151584499859,
        'D2': 2926579062718395593,
        'D3': 114,
        'D4': [0.2994837462902069,
               0.08445628732442856,
               -0.19866381585597992,
               0.43191060423851013,
               -0.6879830360412598,
               0.5181145668029785,
               -0.28763285279273987],
        'D5': [-623203279, 2572235, 720252878],
        'D6': 16082209853081358333},
 'A8': 0.6307791131420724}

Вариант №36

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

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

Пример 1

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

(b'PQY\x0f\xa3"!y\x98\x9f\xfa\xbfo\x9f\x1a\x00\x00\x00_\x00\x00\x00\xa6\x00'
 b'\x03J\xea\x08a&\n\x850:\x8f\xa6\xf9N\xa6?\xe0[W\xfa\xa3_\xa8?'
 b'\x8f\xe6\xbf\xda\xec\xca\x80,\xb9x\xa5HU\xd4)?\xe4\xa8\x86e\x00hz?\x902BN'
 b'\xbf\xd0\x81\xf9\x8diV\xa0\x8d\xd6M\xb7\xd3\x002\x00?\x00L\xbfy\xab\x19\x00'
 b'\x03\x00Y\x83\x14m\xfc&\xdf\x83\xea\xfe+\x9d\x17\xe9\x88\xd1\xb3s'
 b'\x8e\xca\xc6G\x89\xa3\xc7\xee\x8a\xe7\x87~|H\x9dF\x08bJ\xa7Z3w\x8f'
 b'?\x7f\x9a\xb4\x17=\xec\xff\xd27v\xe6\xdb\x9d(\x9d\xe6\xb0N\xfc\x96\x8e<\xba'
 b'c\xca\x00\x00\x00g1\xa0')

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

{'A1': 262349345,
 'A2': 2040045562,
 'A3': -0.9360214471817017,
 'A4': {'B1': -0.9752669930458069,
        'B2': [{'C1': -0.4207025767999748, 'C2': -1521986092, 'C3': 41},
               {'C1': 0.6455718968093287, 'C2': 1066414658, 'C3': 78},
               {'C1': -0.2579330330821481, 'C2': -1915335241, 'C3': 211}]},
 'A5': {'D1': {'E1': 0.022752661257982254,
               'E2': {'F1': [9445295248254141418,
                             18314905035660120499,
                             8326815714007163847,
                             17188805496941594781,
                             5046391455243449207],
                      'F2': -113,
                      'F3': 0.9984543323516846,
                      'F4': 5949,
                      'F5': -1369144626037466211,
                      'F6': 2926748977774499470},
               'E3': [49, -96]},
        'D2': [215786, 140584458, 2234530447, 2801356454],
        'D3': 0.5111503501202508,
        'D4': 63,
        'D5': 36838}}

Пример 2

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

(b'PQY-\xa9\xb2\xdf(\x96n\x0b>\x96\x9d\xee\x00\x00\x00P\x00\x00\x00\x97\x84'
 b'c\xecEX\x000\xef\xeb\xffHG+9]R\xbf\xe6s\x81\xd7\r[>f\xb6.\xbf\xc9y\xf1\xeb!'
 b'\xa50m\xb0\xed\x14\xce\xbf\xc9F\xfc\xf6\xcd\x89\x10V!]\x95=\x002\x00?'
 b'>\xb9N\x17\x00\x02\x00L\xd6\xf8+j|\xc02O\xac\x02\xb1\xc5\x0eXlT\x1eF\x9d\xd8'
 b'\r%\xc1\xfeK\xbe\x1e\xce\xb2\xea\x19\x88=\xaaz\xdf\xa8\x06~/h\xbe\x1d('
 b'` .\xc6\xac\xae;\x99\xa3+W]\xcf0CDy`\x03?"F\x18\x00\x00\x00X\x96\x8d')

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

{'A1': 766096095,
 'A2': 680947211,
 'A3': 0.2941736578941345,
 'A4': {'B1': 0.3619239032268524,
        'B2': [{'C1': -0.19903396588350963, 'C2': 1840311572, 'C3': 206},
               {'C1': -0.1974788861362602, 'C2': 1445027221, 'C3': 61}]},
 'A5': {'D1': {'E1': 0.6338820457458496,
               'E2': {'F1': [15490178654700319311,
                             12394664584384375892,
                             2181604620766659070,
                             5457833671533402504,
                             4443499083369709103],
                      'F2': 104,
                      'F3': -0.1534743309020996,
                      'F4': 8238,
                      'F5': -4130735187201676457,
                      'F6': 6759674631176151043},
               'E3': [-106, -115]},
        'D2': [2221141061, 1476407535, 3959375943, 725179730],
        'D3': -0.701599998496796,
        'D4': 102,
        'D5': 46638}}

Вариант №37

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

Структура E:

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

Структура F:

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

Структура G:

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

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

Пример 1

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

(b'TMJ\xf2\x05\x14a\x1e?X\xacN\xa3HU!=\xb9A\xa1\x12\x83\x00H\x03\x00\x9d\x00'
 b'\x02\x00\xa3\x00\xf3\x17\xf5\xe5\xa5\xf8\x10\xbe\xb7\xfc\xf2\xbez\xe7\xb0>'
 b'\x16$\x9e\xbe\x11\xb2\xd3>X7\xfcy\x0f#f<\x1a5N\xb3\x92s\xd4C7QX\x9c'
 b'M\xbf7\xe3\xb6\xff\x90\xa1\xbe*\x8f\xa0Tb\xe6>\xa7\x06\x022<m?\x12'
 b'\x04\x00\x00\x00H\x00\x00\x00\x08\x7f\\\xfd\x08\xe3j4\x92n\xe5\xe0+\xc0\x96U'
 b'\xfci\xe5\xbe?\x9e3\x8c\x08\x18M\xee\xc7C\xcbd\x00\x19\xb7{B\x94d\xeb'
 b'y\x00\x00\x00\xe1S\xbb\x8b\xb30p\x1f\xd25\x0bo\x18\xafH')

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

{'A1': 5669003059068474373,
 'A2': -93,
 'A3': 1342426427783468360,
 'A4': {'B1': 14646770239448549516,
        'B2': {'C1': [{'D1': 20791, 'D2': -0.8031668663024902, 'D3': 55},
                      {'D1': -18717, 'D2': -0.31555935740470886, 'D3': 42},
                      {'D1': -24433, 'D2': 0.44996893405914307, 'D3': 167},
                      {'D1': 518, 'D2': 0.9266997575759888, 'D3': 18}],
               'C2': {'E1': 4250697480, 'E2': 879420168, 'E3': -521834862},
               'C3': 43},
        'B3': 46873,
        'B4': 123,
        'B5': 3949237314,
        'B6': {'F1': 0.12068807993417874, 'F2': 13214},
        'B7': -31,
        'B8': 3012279123},
 'A5': {'G1': 72,
        'G2': [28720, -11745, 2869],
        'G3': [6255, 18607],
        'G4': -436922381,
        'G5': [-0.14157350361347198,
               -0.47458431124687195,
               0.34551602602005005,
               -0.30886906385421753,
               0.4134679138660431]},
 'A6': 4352204639278217048,
 'A7': 4887658569514497306}

Пример 2

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

(b'TMJ\xf2\xe3W80\x06\xbaC\x1e\xcek\xf5\x1aP\xc1\x9f\x87\x9b\x83\x00;'
 b'\x03\x00\x9d\x00\x02\x00\xa3\x00\x12\xd9\x133\x08\xae\xca>\xb6\xf4\xcb\xbe'
 b'\x0c\x90\x9d\xbe\x80\x95\x1b\xbe\x86\xfd\xd1\xbe\xd4\x13\xf3%\x9e[\x1f\xf9'
 b'U\x7f\xbf\xcf\xf6\xeeb\x1c\xee4\x91\xea\x10;ob\xa0\xf3\nh\xbf\xf7\x03*'
 b'=\xd4C\xbew\xfc\xc9\x1a\x86\x8e>C\x04\x00\x00\x00H\x00\x00\x00\xab\xa8g\xda'
 b'l\x8b\x11\x1c\xd0\xa0\x7f\xf9m`\x16J@\x96\xb2\xe6\xbf;\xcc"\xbb\xaaI\xe8'
 b'\r\xe3\x9ed\x00\x18\x99\xaf}\xd4\xb8\xd6y\x00\x00\x00c\x92\x91/\xca\xa3O,'
 b'\xa2T\x80\xb1H\x10\xab')

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

{'A1': 2180791180319021027,
 'A2': -50,
 'A3': -7239642223353334421,
 'A4': {'B1': 11449009969025432354,
        'B2': {'C1': [{'D1': 13550, 'D2': 0.0022112468723207712, 'D3': 111},
                      {'D1': -24478, 'D2': -0.9064170718193054, 'D3': 247},
                      {'D1': 10755, 'D2': -0.19123931229114532, 'D3': 119},
                      {'D1': -13828, 'D2': 0.2783668637275696, 'D3': 67}],
               'C2': {'E1': 3664226475, 'E2': 470911852, 'E3': -109076272},
               'C3': 109},
        'B3': 39192,
        'B4': -81,
        'B5': 3602437245,
        'B6': {'F1': -0.7093001609470768, 'F2': -13253},
        'B7': 99,
        'B8': 3392115090},
 'A5': {'G1': 59,
        'G2': [20387, -24020, -32684],
        'G3': [18609, -21744],
        'G4': 856938770,
        'G5': [0.3958590030670166,
               -0.39835137128829956,
               -0.30773961544036865,
               -0.15193748474121094,
               -0.4101373553276062]},
 'A6': 17951167374521734100,
 'A7': 2045459924594425685}

Вариант №38

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'QUAV\xd4\xb3\xfe-Zo(\xe1\x06\x8f>\xbfPq\x03\x00.\x00\x00\x00\x18T\xe6}'
 b'\xcd\xad1\x005\x009\x00=\x00A\x00E\x00I\x00U\x00dds\x9e\xba\x88o\xba\xb6\xc8'
 b'M\xdb\x07\xff\x00vkT_\xa1\xfc3\t\xf2fV\x93An\xf6T\xc9\x03\x7f'
 b'\xab\x01\xd1\xa1h\xca\xd0x\xbf\x02\x00M\x00\x00\x00J\xee\xac\xc8\xdd'
 b'\x1d|D\xc3\xda\t\xe0\xd7\xb4\xe7\x13cT\xfa\xb74 \x9e\x93~\x88\x03\x1d\\'
 b'\xa5\x9b:I\x17\xeaT\x16Y\x03p\xed\xbd\xca\x13\x97\x1d\xdf\xfa\xd6`\x1b<\xc3'
 b'\x90\x88\xc7\xc6\xdf\xd3\x9f\x88\x99\xf3\xcc')

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

{'A1': 16224340090711618516,
 'A2': -0.7443698644638062,
 'A3': {'B1': 29008,
        'B2': 'dds',
        'B3': 24,
        'B4': 84,
        'B5': 2915925478,
        'B6': [{'C1': -98, 'C2': -70, 'C3': 28552},
               {'C1': -70, 'C2': -74, 'C3': 19912},
               {'C1': -37, 'C2': 7, 'C3': 255},
               {'C1': 118, 'C2': 107, 'C3': 24404},
               {'C1': -95, 'C2': -4, 'C3': 2355},
               {'C1': -14, 'C2': 102, 'C3': 37718},
               {'C1': 65, 'C2': 110, 'C3': 21750}],
        'B7': {'D1': -0.9719358682632446,
               'D2': [-1417739319, 1755435265],
               'D3': [61002, 51372, 7645, 17532],
               'D4': [1434313845610502851,
                      -7809769293016837021,
                      4223150890632317054,
                      8071392909626840905,
                      -369544109711770131,
                      -4068843095127793450],
               'D5': 14768316415154053062}}}

Пример 2

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

(b"QUAV\xdd)U\xe8\x12\xfe\xde\x90\x8b\xd7'>\xf0\xca\x02\x00.\x00\x00\x00"
 b'\xad\xd50\x8c\x0f\x1f0\x004\x008\x00<\x00@\x00D\x00H\x00T\x00wt'
 b'\x14\xdd\x05\r=q<\xfc:\x02\xa8{\x042\xf1M\xf23\xb1\xf8:r:\x19\xdc\xbb/\xdb'
 b'\x89\xe9\x15?\x99l\x9fU\x19\xd0N?\x02\x00L\x00\x00\x00\xed\x07\x11$WN'
 b'\t\x12_R\xa6n\xf6F\x9b\xd2+\x86\x82\xa6\x96\xe5w\x80\xaa\x1eh\xb2\xfc1'
 b"\xe8\x85U\xb9x\xadWw\x9b\r*\xf4\x8cM\xd7$ee\xe1#U\xca'O\xee\x92\xdbG"
 b'\xd48y\x0f\xacJ')

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

{'A1': 10439060343452150237,
 'A2': 0.16390816867351532,
 'A3': {'B1': -13584,
        'B2': 'wt',
        'B3': -83,
        'B4': 213,
        'B5': 521112624,
        'B6': [{'C1': 20, 'C2': -35, 'C3': 3333},
               {'C1': 61, 'C2': 113, 'C3': 64572},
               {'C1': 58, 'C2': 2, 'C3': 31656},
               {'C1': 4, 'C2': 50, 'C3': 19953},
               {'C1': -14, 'C2': 51, 'C3': 63665},
               {'C1': 58, 'C2': 114, 'C3': 6458},
               {'C1': -36, 'C2': -69, 'C3': 56111}],
        'B7': {'D1': 0.8078628182411194,
               'D2': [1058400649, 1436511385],
               'D3': [2029, 9233, 20055, 4617],
               'D4': [-3270942680122240417,
                      -9189624079424780757,
                      -8797726910673576278,
                      980508562339445077,
                      7306286477616149546,
                      -7859257267398040607],
               'D5': 5380692668119795675}}}

Вариант №39

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'\xefUFS\x06\xa0\xfc\xb7\xf6\xde\x82.BI;\x98D?\xb7\xfe\x0e\xfc\xa0g'
 b'\xb6Y\x04\x003\x00\x03\x00\x00\x007\x00\x02\x00\x00\x00l\x00\xe9\xfd'
 b'\xb0\xec7\xdb\x99\xa8\xcexeqmzxb\xcb\x96\x18\xea\x02\x00\x00\x00:\x00'
 b'\x00\x00\xa2\x8f\xd4\xca\xea\x15\xbd68\x15\xaa\x86A\x1eK 2\x02\x00\x00\x00S'
 b'\x00\x00\x00l\xbaO%xT\xc8Y\xc2\x92r\xd3\x96>\x00\x00\x00W\x00\x00\x00')

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

{'A1': 3351486223947177990,
 'A2': 18754,
 'A3': 0.7679478526115417,
 'A4': 6464468256258195127,
 'A5': {'B1': 'xeqm', 'B2': 'zxb'},
 'A6': [{'C1': [38603, 59928],
         'C2': 3944332946815881122,
         'C3': 5432,
         'C4': -31062,
         'C5': 65},
        {'C1': [19230, 12832],
         'C2': 6469513739716508268,
         'C3': 37570,
         'C4': -11406,
         'C5': -106}],
 'A7': {'D1': 233, 'D2': 14891321334715691261}}

Пример 2

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

(b'\xefUFS\x9ea\xf8\xad\xae\x90<\x01\xae\x06\xa8\x1c~\xbfZ\xfc\xa6\x06\x84\xd0'
 b'f\xe0\x04\x003\x00\x03\x00\x00\x007\x00\x06\x00\x00\x00\xd0\x00A\xdb'
 b"\xe3+\x9e\x89u\xb8limvcgzx\xf8'\xabd\x02\x00\x00\x00:\x00\x00\x00V:"
 b'0R\xff\x9ce\xda\xc2\xd6\x04\xdd=\x99\x13\xb2<\x02\x00\x00\x00S'
 b'\x00\x00\x00\x9f~\x9d\x9d\xe4\xfb?\n\x99(\xc5\xe8q\xad4\xda\xd1'
 b'\x02\x00\x00\x00l\x00\x00\x00\x95J\xa2\xb5\x0c\xbdl\r\xbc\xd0\x0b\x9d'
 b'\xc6\xcd`\x82?\x02\x00\x00\x00\x85\x00\x00\x008R9\xc5\xe7\xa6\xfdi\rI\xe7'
 b',\x90\x93A\x8b\x98\x02\x00\x00\x00\x9e\x00\x00\x00-[\x7fq\xbal8]I\xaa'
 b'\xfc\x07\xf8\x81Q\x19\xae\x02\x00\x00\x00\xb7\x00\x00\x00\xfa'
 b'\xff\x05\x08\x88\xe3\xe6aW\x0eOI\x13>\x00\x00\x00W\x00\x00\x00p\x00\x00\x00'
 b'\x89\x00\x00\x00\xa2\x00\x00\x00\xbb\x00\x00\x00')

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

{'A1': 89105172558012830,
 'A2': 1710,
 'A3': -0.9926247596740723,
 'A4': -2276903296123339686,
 'A5': {'B1': 'imvc', 'B2': 'gzx'},
 'A6': [{'C1': [10232, 25771],
         'C2': 15737157093325552214,
         'C3': 54978,
         'C4': -8956,
         'C5': 61},
        {'C1': [5017, 15538],
         'C2': 738585823227510431,
         'C3': 10393,
         'C4': -5947,
         'C5': 113},
        {'C1': [13485, 53722],
         'C2': 967355882262383253,
         'C3': 53436,
         'C4': -25333,
         'C5': -58},
        {'C1': [24781, 16258],
         'C2': 7637444057466753592,
         'C3': 18701,
         'C4': 11495,
         'C5': -112},
        {'C1': [16787, 39051],
         'C2': 6717238392246983469,
         'C3': 43593,
         'C4': 2044,
         'C5': -8},
        {'C1': [20865, 44569],
         'C2': 7054576039712129018,
         'C3': 3671,
         'C4': 18767,
         'C5': 19}],
 'A7': {'D1': 65, 'D2': 7834140785735623643}}

Вариант №40

Задача №12

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

Структура A:

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

Структура B:

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

Структура C:

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

Структура D:

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

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

Пример 1

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

(b'LYDIdy\xeb\xb5%e\xf1\x1eV6\x03\x003\x00\xe6I\x00\x00\x00\xcaQ\xc8x\x1e'
 b'\x11v\xbf\x83}\xe0$\xfb\xdd\xa0>\x8a$#\xbc\xfbC\xe9=\xb0\x0c\xa3u\x1b'
 b'\x00#\x00+\x00R\xe9\xa4\x93\xcb\xb2\xbad\xae~3U\xa0\x84<\xbdE7e\xa5=e\x11'
 b')\x90\xb8\x94\xcc\x00\x17\xed?\x04\x00\x00\x009\x00\x00\x00IxV<=\xdd\xe3'
 b'\x92\x06\x00\x00\x00=\x00\xfa\x8e\xc6\xbe')

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

{'A1': {'B1': 'dy',
        'B2': 3915350948178146795,
        'B3': [{'C1': -0.9611986875534058, 'C2': [32131, 9440]},
               {'C1': 0.31419357657432556, 'C2': [9354, 48163]},
               {'C1': 0.11389919370412827, 'C2': [3248, 30115]}],
        'B4': 230},
 'A2': {'D1': 2959257745601410885,
        'D2': 0.9090579982491978,
        'D3': [82, 233, 164, 147],
        'D4': 10584546804325840969,
        'D5': [45771, 25786, 32430, 21811, 33952, 48444],
        'D6': -0.3878095746040344},
 'A3': 2026394058}

Пример 2

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

(b'LYDIbu\xcfG\xdfR?-|\xf7\x03\x003\x00\\A\x00\x00\x00\xff\x1d\x8eapEj?\x9a'
 b'>\xb5\xa1\x00\xf2F\xbf\xa4\x00\xda\x17\xd0\xe74>7\x9fu\xe2\x1b\x00#\x00+'
 b'\x00\x86\xab\x14\xff\x9a>M\xc4\x86u\xdc\x82\xb8r\xf0\xb9\xee\x17B'
 b'\xfd\xe6\x82\xe8?\x04\x00\x00\x009\x00\x00\x00\xae\xc8\xeaW\xd0BA'
 b'\x9b\x02\x00\x00\x00=\x00\x93\x8a\x99>')

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

{'A1': {'B1': 'bu',
        'B2': -613565699232675889,
        'B3': [{'C1': 0.9151220321655273, 'C2': [16026, 41397]},
               {'C1': -0.777130126953125, 'C2': [164, 6106]},
               {'C1': 0.1766655445098877, 'C2': [40759, 57973]}],
        'B4': 92},
 'A2': {'D1': 13398335028222260614,
        'D2': 0.7659792849015028,
        'D3': [134, 171, 20, 255],
        'D4': 11187296411960658094,
        'D5': [16026, 50253],
        'D6': 0.2998853623867035},
 'A3': 1636703743}