ИКБО-14-22

Вариант №1

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Шестнадцатиричная строка.
0 1 2 3 4 8 9 15 16 21 22 29 E1 E2 E3 E4 E5 E6

Выходные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Тесты:

>>> main('0x12e8fb13')
(3, 0, 17, 125, 40, 75)

>>> main('0x3b149ac3')
(3, 0, 12, 77, 20, 236)

>>> main('0x2c64d9ea')
(2, 2, 30, 108, 36, 177)

>>> main('0x2238a6bb')
(3, 2, 11, 83, 56, 136)

Вариант №2

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Десятичная строка.

0 1 2 10 11 19 20 21 22 25 26 29 Z1 Z2 Z3 Z4 Z5 Z6

Выходные данные:

Целое.

0 1 2 10 11 19 20 23 24 27 28 29 Z4 Z3 Z2 Z5 Z6 Z1

Тесты:

>>> main('855386498')
749930007

>>> main('707848740')
176441463

>>> main('196611557')
317443079

>>> main('483400688')
121102349

Вариант №3

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Десятичная строка.

0 5 6 10 11 14 15 22 23 26 K1 K2 K3 K4 K5

Выходные данные:

Целое.

0 3 4 9 10 14 15 18 19 26 K5 K1 K2 K3 K4

Тесты:

>>> main('86849833')
47420058

>>> main('8839963')
7221681

>>> main('100925075')
4188476

>>> main('125835128')
96143

Вариант №4

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: целое.

Выходные данные:

Шестнадцатиричная строка.
0 1 2 5 6 9 10 15 E1 E3 E4

Тесты:

>>> main([('E1', 1), ('E3', 10), ('E4', 62)])
'0xfa81'

>>> main([('E1', 3), ('E3', 3), ('E4', 36)])
'0x90c3'

>>> main([('E1', 3), ('E3', 9), ('E4', 3)])
'0xe43'

>>> main([('E1', 3), ('E3', 2), ('E4', 58)])
'0xe883'

Вариант №5

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.

0 5 6 7 14 15 23 24 30 K1 K2 K4 K5

Выходные данные:

Шестнадцатиричная строка.

0 6 7 14 15 20 21 22 30 K5 K1 K2 K4

Тесты:

>>> main(50104889)
'0x7e5c8002'

>>> main(2138499344)
'0x3b48007f'

>>> main(1329533)
'0xa3e8000'

>>> main(1335690712)
'0x4eac004f'

Вариант №6

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Целое.
0 1 2 3 6 7 12 M1 M2 M3 M4

Тесты:

>>> main(('1', '1', '1', '35'))
4493

>>> main(('3', '1', '2', '48'))
6167

>>> main(('3', '0', '11', '12'))
1627

>>> main(('2', '1', '5', '44'))
5678

Вариант №7

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: шестнадцатиричная строка.

Выходные данные:

Целое.
0 8 9 16 17 21 22 24 F1 F2 F3 F4

Тесты:

>>> main([('F1', '0x174'), ('F2', '0xb7'), ('F3', '0x17'), ('F4', '0x5')])
24080244

>>> main([('F1', '0xc3'), ('F2', '0x19'), ('F3', '0xd'), ('F4', '0x2')])
10105539

>>> main([('F1', '0xc2'), ('F2', '0x1'), ('F3', '0x14'), ('F4', '0x2')])
11010754

>>> main([('F1', '0x107'), ('F2', '0x39'), ('F3', '0x6'), ('F4', '0x6')])
25981703

Вариант №8

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Шестнадцатиричная строка.
0 8 9 15 Q1 Q2 16 17 21 22 31 Q2 Q4

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: шестнадцатиричная строка.

Тесты:

>>> main('0xb3905d7f')
[('Q1', '0x17f'), ('Q2', '0x2e'), ('Q4', '0x2ce')]

>>> main('0xa29f352c')
[('Q1', '0x12c'), ('Q2', '0x9a'), ('Q4', '0x28a')]

>>> main('0x9cdcc121')
[('Q1', '0x121'), ('Q2', '0x60'), ('Q4', '0x273')]

>>> main('0x6c9771f6')
[('Q1', '0x1f6'), ('Q2', '0xb8'), ('Q4', '0x1b2')]

Вариант №9

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Десятичная строка.

0 2 3 8 9 14 15 23 D1 D3 D4

Выходные данные:

Шестнадцатиричная строка.

0 8 9 14 15 17 18 23 D4 D3 D1

Тесты:

>>> main('6123525')
'0x2f0ba'

>>> main('379759')
'0x3ca0b'

>>> main('1320643')
'0x1a628'

>>> main('1335658')
'0x16028'

Вариант №10

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Шестнадцатиричная строка.
0 1 10 11 17 18 19 24 G1 G2 G3 G4 G5

Тесты:

>>> main({'G1': '1', 'G2': '1007', 'G3': '56', 'G4': '0', 'G5': '53'})
'0x1a9c7df'

>>> main({'G1': '1', 'G2': '194', 'G3': '105', 'G4': '0', 'G5': '2'})
'0x134985'

>>> main({'G1': '0', 'G2': '519', 'G3': '55', 'G4': '1', 'G5': '33'})
'0x10dbc0e'

>>> main({'G1': '0', 'G2': '1015', 'G3': '6', 'G4': '0', 'G5': '18'})
'0x9037ee'

Вариант №11

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Целое.
0 7 8 15 16 17 18 27 J1 J2 J3 J4

Выходные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(235183418)
(58, 157, 0, 897)

>>> main(165460406)
(182, 185, 0, 631)

>>> main(210002837)
(149, 99, 0, 801)

>>> main(174130412)
(236, 4, 1, 664)

Вариант №12

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.
0 4 5 14 15 18 19 24 25 26 Z1 Z3 Z4 Z5

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: шестнадцатиричная строка.

Тесты:

>>> main(131039090)
{'Z1': '0x12', 'Z3': '0xe', 'Z4': '0x39', 'Z5': '0x3'}

>>> main(83333562)
{'Z1': '0x1a', 'Z3': '0xf', 'Z4': '0x1e', 'Z5': '0x2'}

>>> main(99487248)
{'Z1': '0x10', 'Z3': '0xc', 'Z4': '0x3d', 'Z5': '0x2'}

>>> main(101395374)
{'Z1': '0xe', 'Z3': '0x6', 'Z4': '0x1', 'Z5': '0x3'}

Вариант №13

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Выходные данные:

Шестнадцатиричная строка.
0 7 8 9 10 13 14 20 L1 L2 L3 L4

Тесты:

>>> main((40, 1, 12, 10))
'0x2b128'

>>> main((58, 1, 3, 92))
'0x170d3a'

>>> main((247, 3, 6, 49))
'0xc5bf7'

>>> main((97, 1, 13, 55))
'0xdf561'

Вариант №14

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Целое.
0 5 6 14 15 22 23 27 G1 G2 G4

Тесты:

>>> main(('39', '73', '14'))
117445223

>>> main(('7', '86', '21'))
176166279

>>> main(('61', '418', '17'))
142633149

>>> main(('22', '416', '0'))
26646

Вариант №15

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Десятичная строка.
0 9 10 14 15 X1 X2 16 19 20 26 27 31 X4 X5

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: целое.

Тесты:

>>> main('2966509805')
{'X1': 237, 'X2': 22, 'X4': 13, 'X5': 22}

>>> main('2184989296')
{'X1': 624, 'X2': 18, 'X4': 35, 'X5': 16}

>>> main('33416538')
{'X1': 346, 'X2': 25, 'X4': 31, 'X5': 0}

>>> main('4028910077')
{'X1': 509, 'X2': 18, 'X4': 2, 'X5': 30}

Вариант №16

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.

0 6 7 9 10 11 20 K2 K3 K4

Выходные данные:

Десятичная строка.

0 1 10 11 17 18 20 K3 K4 K2

Тесты:

>>> main(681596)
'1049241'

>>> main(1065591)
'1049616'

>>> main(1088598)
'1063'

>>> main(854783)
'1311554'

Вариант №17

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Шестнадцатиричная строка.
0 9 10 19 20 K1 K2 K3 21 29 30 34 35 40 K3 K4 K5

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: шестнадцатиричная строка.

Тесты:

>>> main('0x124e6491a76')
{'K1': '0x276', 'K2': '0x246', 'K3': '0x264', 'K4': '0x13', 'K5': '0x24'}

>>> main('0xa32585a552')
{'K1': '0x152', 'K2': '0x169', 'K3': '0x258', 'K4': '0xc', 'K5': '0x14'}

>>> main('0x5f8130acd4')
{'K1': '0xd4', 'K2': '0x2b', 'K3': '0x13', 'K4': '0x1e', 'K5': '0xb'}

>>> main('0x1dda0d11e4a')
{'K1': '0x24a', 'K2': '0x47', 'K3': '0x20d', 'K4': '0x16', 'K5': '0x3b'}

Вариант №18

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Шестнадцатиричная строка.
0 2 3 9 10 11 12 20 Z1 Z2 Z3 Z4

Тесты:

>>> main([('Z1', '2'), ('Z2', '52'), ('Z3', '2'), ('Z4', '477')])
'0x1dd9a2'

>>> main([('Z1', '6'), ('Z2', '84'), ('Z3', '2'), ('Z4', '201')])
'0xc9aa6'

>>> main([('Z1', '3'), ('Z2', '59'), ('Z3', '1'), ('Z4', '70')])
'0x465db'

>>> main([('Z1', '5'), ('Z2', '116'), ('Z3', '3'), ('Z4', '57')])
'0x39fa5'

Вариант №19

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Десятичная строка.
0 6 7 15 16 19 20 21 23 W1 W2 W4 W5

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: десятичная строка.

Тесты:

>>> main('12823728')
{'W1': '48', 'W2': '345', 'W4': '0', 'W5': '6'}

>>> main('4680225')
{'W1': '33', 'W2': '212', 'W4': '0', 'W5': '2'}

>>> main('12963119')
{'W1': '47', 'W2': '410', 'W4': '0', 'W5': '6'}

>>> main('15322721')
{'W1': '97', 'W2': '412', 'W4': '0', 'W5': '7'}

Вариант №20

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Целое.
0 8 9 18 19 23 P1 P2 P3 24 26 27 28 37 38 46 P3 P4 P5 P6

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(36918793233754)
{'P1': 346, 'P2': 818, 'P3': 113, 'P4': 0, 'P5': 317, 'P6': 134}

>>> main(104418891822293)
{'P1': 213, 'P2': 570, 'P3': 94, 'P4': 1, 'P5': 894, 'P6': 379}

>>> main(7850127744227)
{'P1': 227, 'P2': 430, 'P3': 2, 'P4': 0, 'P5': 572, 'P6': 28}

>>> main(71362299778282)
{'P1': 234, 'P2': 938, 'P3': 144, 'P4': 0, 'P5': 629, 'P6': 259}

Вариант №21

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Шестнадцатиричная строка.
0 3 4 11 12 14 15 24 25 29 D1 D2 D3 D4 D5

Тесты:

>>> main(('7', '40', '2', '609', '24'))
'0x3130a287'

>>> main(('2', '113', '6', '835', '1'))
'0x3a1e712'

>>> main(('9', '179', '6', '802', '6'))
'0xd916b39'

>>> main(('3', '124', '0', '939', '14'))
'0x1dd587c3'

Вариант №22

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: шестнадцатиричная строка.

Выходные данные:

Шестнадцатиричная строка.
0 9 10 16 17 19 A1 A2 A3 20 22 23 28 29 31 32 39 A3 A5 A6

Тесты:

>>> main([('A1', '0x382'), ('A2', '0x53'), ('A3', '0x3c'), ('A5', '0x5'), ('A6', '0x75')])
'0x75a0794f82'

>>> main([('A1', '0x1cf'), ('A2', '0x16'), ('A3', '0x29'), ('A5', '0x7'), ('A6', '0x71')])
'0x71e05259cf'

>>> main([('A1', '0x13f'), ('A2', '0x28'), ('A3', '0x2e'), ('A5', '0x5'), ('A6', '0xad')])
'0xada05ca13f'

>>> main([('A1', '0x186'), ('A2', '0x21'), ('A3', '0xf'), ('A5', '0x4'), ('A6', '0x6')])
'0x6801e8586'

Вариант №23

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Десятичная строка.
0 6 7 11 12 21 22 24 25 26 E1 E3 E4 E5

Выходные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Тесты:

>>> main('30427252')
('116', '260', '7', '0')

>>> main('24785520')
('112', '931', '5', '0')

>>> main('2714480')
('112', '662', '0', '0')

>>> main('111815151')
('111', '674', '2', '3')

Вариант №24

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Целое.
0 8 9 14 15 17 18 A1 A2 A3 A4

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(173554)
[('A1', 498), ('A2', 18), ('A3', 5), ('A4', 0)]

>>> main(344657)
[('A1', 81), ('A2', 33), ('A3', 2), ('A4', 1)]

>>> main(22834)
[('A1', 306), ('A2', 44), ('A3', 0), ('A4', 0)]

>>> main(198177)
[('A1', 33), ('A2', 3), ('A3', 6), ('A4', 0)]

Вариант №25

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Десятичная строка.
0 9 10 13 14 15 17 E1 E2 E3 E4 18 22 23 29 30 34 E4 E5 E6

Тесты:

>>> main(('235', '2', '1', '135', '72', '16'))
'17788291307'

>>> main(('954', '11', '1', '42', '51', '7'))
'7945416634'

>>> main(('110', '8', '1', '182', '118', '16'))
'18175713390'

>>> main(('756', '13', '1', '165', '110', '17'))
'19181795060'

Вариант №26

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: целое.

Выходные данные:

Шестнадцатиричная строка.
0 7 8 15 16 17 E1 E2 E3 18 24 25 31 32 35 E5 E6

Тесты:

>>> main([('E1', 105), ('E2', 123), ('E3', 1), ('E5', 13), ('E6', 5)])
'0x51a017b69'

>>> main([('E1', 177), ('E2', 192), ('E3', 3), ('E5', 117), ('E6', 11)])
'0xbea03c0b1'

>>> main([('E1', 162), ('E2', 156), ('E3', 0), ('E5', 27), ('E6', 5)])
'0x536009ca2'

>>> main([('E1', 205), ('E2', 120), ('E3', 0), ('E5', 101), ('E6', 2)])
'0x2ca0078cd'

Вариант №27

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Шестнадцатиричная строка.

0 7 8 9 10 15 16 W1 W2 W3 W4 17 22 23 27 28 32 W4 W5 W6

Выходные данные:

Десятичная строка.

0 6 7 12 13 14 15 16 W4 W3 W2 W5 17 19 20 27 28 32 W5 W1 W6

Тесты:

>>> main('0xabf032cc')
'2899035760'

>>> main('0x16ac47be2')
'6143274820'

>>> main('0xcf36ff26')
'3262087094'

>>> main('0x1b0cd98cb')
'7460655949'

Вариант №28

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Шестнадцатиричная строка.
0 9 10 16 17 18 21 22 25 I1 I2 I3 I4 I5

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: десятичная строка.

Тесты:

>>> main('0x7609cc')
[('I1', '460'), ('I2', '2'), ('I3', '1'), ('I4', '13'), ('I5', '1')]

>>> main('0x16b2098')
[('I1', '152'), ('I2', '72'), ('I3', '1'), ('I4', '10'), ('I5', '5')]

>>> main('0xc71a57')
[('I1', '599'), ('I2', '70'), ('I3', '1'), ('I4', '1'), ('I5', '3')]

>>> main('0x2bcb14d')
[('I1', '333'), ('I2', '44'), ('I3', '0'), ('I4', '15'), ('I5', '10')]

Вариант №29

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Шестнадцатиричная строка.
0 8 9 12 13 15 16 19 20 23 F1 F2 F3 F4

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: десятичная строка.

Тесты:

>>> main('0xfdd19')
[('F1', '281'), ('F2', '14'), ('F3', '6'), ('F4', '15')]

>>> main('0x3c3bf')
[('F1', '447'), ('F2', '1'), ('F3', '6'), ('F4', '3')]

>>> main('0xb7773')
[('F1', '371'), ('F2', '11'), ('F3', '3'), ('F4', '11')]

>>> main('0x9dc17')
[('F1', '23'), ('F2', '14'), ('F3', '6'), ('F4', '9')]

Вариант №30

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.
0 3 4 10 11 20 21 26 27 28 L1 L2 L4 L5

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(38815121)
[('L1', 1), ('L2', 89), ('L4', 18), ('L5', 0)]

>>> main(161390920)
[('L1', 8), ('L2', 20), ('L4', 12), ('L5', 1)]

>>> main(266170509)
[('L1', 13), ('L2', 8), ('L4', 62), ('L5', 1)]

>>> main(470673237)
[('L1', 5), ('L2', 117), ('L4', 32), ('L5', 3)]

Вариант №31

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.
0 6 7 13 14 22 E1 E2 E3 23 29 30 38 39 44 E4 E6

Выходные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(9828285035035)
(27, 100, 448, 38, 17)

>>> main(23173298022943)
(31, 84, 201, 104, 42)

>>> main(30207924771098)
(26, 50, 128, 41, 54)

>>> main(3677423635287)
(87, 22, 30, 111, 6)

Вариант №32

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: шестнадцатиричная строка.

Выходные данные:

Целое.
0 6 7 8 9 15 16 22 U1 U2 U3 U4 U5

Тесты:

>>> main([('U1', '0x6e'), ('U2', '0x1'), ('U3', '0x1'), ('U4', '0x1c'), ('U5', '0x43')])
4405742

>>> main([('U1', '0x57'), ('U2', '0x0'), ('U3', '0x1'), ('U4', '0x2a'), ('U5', '0x37')])
3626327

>>> main([('U1', '0x43'), ('U2', '0x0'), ('U3', '0x0'), ('U4', '0x7b'), ('U5', '0x62')])
6485571

>>> main([('U1', '0x51'), ('U2', '0x1'), ('U3', '0x1'), ('U4', '0x35'), ('U5', '0x7c')])
8154065

Вариант №33

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.
0 1 9 10 19 20 C1 C3 C4

Выходные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(324471)
{'C1': 1, 'C3': 316, 'C4': 0}

>>> main(1195793)
{'C1': 1, 'C3': 143, 'C4': 1}

>>> main(2010915)
{'C1': 1, 'C3': 939, 'C4': 1}

>>> main(16032)
{'C1': 0, 'C3': 15, 'C4': 0}

Вариант №34

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Целое.
0 5 6 12 13 16 17 20 21 23 T1 T2 T4 T5

Выходные данные:

Список из битовых полей в виде пар имя-значение. Значения битовых полей имеют тип: шестнадцатиричная строка.

Тесты:

>>> main(12585362)
[('T1', '0x12'), ('T2', '0x26'), ('T4', '0x0'), ('T5', '0x6')]

>>> main(5375091)
[('T1', '0x33'), ('T2', '0x11'), ('T4', '0x9'), ('T5', '0x2')]

>>> main(1325950)
[('T1', '0x3e'), ('T2', '0x6d'), ('T4', '0xa'), ('T5', '0x0')]

>>> main(13595366)
[('T1', '0x26'), ('T2', '0x4b'), ('T4', '0x7'), ('T5', '0x6')]

Вариант №35

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: шестнадцатиричная строка.

Выходные данные:

Десятичная строка.
0 8 9 10 16 17 18 19 G1 G3 G4 G5

Тесты:

>>> main(('0x17e', '0x2c', '0x1', '0x0'))
'176510'

>>> main(('0x145', '0x78', '0x0', '0x3'))
'909637'

>>> main(('0x11', '0x5a', '0x0', '0x2'))
'616465'

>>> main(('0x64', '0x45', '0x0', '0x0'))
'70756'

Вариант №36

Задача №8

Реализовать функцию для декодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Целое.
0 2 3 11 12 18 19 21 R1 R2 R3 R4

Выходные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Тесты:

>>> main(1280165)
(5, 276, 56, 2)

>>> main(2376236)
(4, 69, 68, 4)

>>> main(871780)
(4, 428, 84, 1)

>>> main(86118)
(6, 12, 21, 0)

Вариант №37

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: десятичная строка.

Выходные данные:

Целое.
0 6 7 14 15 17 O1 O2 O3 18 23 24 27 28 34 O3 O4 O5

Тесты:

>>> main(('63', '137', '206', '7', '40'))
10861626559

>>> main(('25', '48', '35', '8', '30'))
8188434457

>>> main(('118', '125', '115', '9', '110'))
29682679542

>>> main(('49', '141', '160', '4', '116'))
31210882737

Вариант №38

Задача №8

Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Шестнадцатиричная строка.

0 1 2 6 7 15 16 21 22 23 Z1 Z2 Z3 Z4 Z5

Выходные данные:

Десятичная строка.

0 1 2 6 7 15 16 17 18 23 Z5 Z2 Z3 Z1 Z4

Тесты:

>>> main('0x61a422')
'8823841'

>>> main('0x4f0bdb')
'4131801'

>>> main('0xd9fe90')
'6618771'

>>> main('0xc4f849')
'1177675'

Вариант №39

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.

Входные данные:

Словарь из битовых полей. Значения битовых полей имеют тип: целое.

Выходные данные:

Шестнадцатиричная строка.
0 6 7 8 9 15 16 18 I1 I2 I3 I4

Тесты:

>>> main({'I1': 107, 'I2': 1, 'I3': 120, 'I4': 1})
'0x1f0eb'

>>> main({'I1': 115, 'I2': 0, 'I3': 1, 'I4': 0})
'0x273'

>>> main({'I1': 51, 'I2': 2, 'I3': 8, 'I4': 3})
'0x31133'

>>> main({'I1': 91, 'I2': 3, 'I3': 61, 'I4': 2})
'0x27bdb'

Вариант №40

Задача №8

Реализовать функцию для кодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.

Входные данные:

Кортеж из битовых полей в порядке от младших бит к старшим. Значения битовых полей имеют тип: целое.

Выходные данные:

Шестнадцатиричная строка.
0 5 6 9 10 16 17 26 S1 S2 S3

Тесты:

>>> main((60, 10, 5))
'0x16bc'

>>> main((6, 11, 10))
'0x2ac6'

>>> main((21, 14, 57))
'0xe795'

>>> main((26, 0, 91))
'0x16c1a'