ИВБО-09-22

Вариант №1

Задача №8

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

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

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

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

Целое.
0 7 8 9 13 14 19 20 22 23 28 E1 E2 E3 E4 E5 E6

Тесты:

>>> main({'E1': 40, 'E2': 1, 'E3': 6, 'E4': 53, 'E5': 4, 'E6': 21})
181226792

>>> main({'E1': 103, 'E2': 1, 'E3': 12, 'E4': 54, 'E5': 7, 'E6': 56})
477993319

>>> main({'E1': 46, 'E2': 0, 'E3': 9, 'E4': 46, 'E5': 6, 'E6': 0})
7049774

>>> main({'E1': 174, 'E2': 0, 'E3': 25, 'E4': 31, 'E5': 5, 'E6': 32})
274199214

Вариант №2

Задача №8

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

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

Целое.

0 6 7 8 13 14 21 O1 O2 O3

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

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

0 7 8 9 15 16 21 O2 O1 O3

Тесты:

>>> main(6113)
'1557248'

>>> main(12953)
'3289856'

>>> main(590)
'171008'

>>> main(15035)
'3831552'

Вариант №3

Задача №8

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

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

Целое.
0 9 10 18 19 21 22 26 N1 N2 N3 N4

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

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

Тесты:

>>> main(59497868)
(396, 247, 1, 14)

>>> main(29166735)
(143, 323, 7, 6)

>>> main(58503711)
(543, 300, 7, 13)

>>> main(61649956)
(36, 301, 5, 14)

Вариант №4

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 16 Y1 Y2 17 18 19 25 26 33 Y2 Y3 Y4

Тесты:

>>> main(('0xca', '0xc5', '0x68', '0xa7'))
'11261807306'

>>> main(('0x12a', '0x302', '0x4c', '0x7'))
'510002474'

>>> main(('0x118', '0x9e', '0x0', '0x4a'))
'4966137112'

>>> main(('0x53', '0x330', '0x71', '0xbe'))
'12810346579'

Вариант №5

Задача №8

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

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

Целое.
0 1 8 9 15 16 17 X1 X2 X3

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

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

Тесты:

>>> main(46110)
(0, 15, 90)

>>> main(28793)
(1, 60, 56)

>>> main(6646)
(0, 251, 12)

>>> main(65473)
(1, 224, 127)

Вариант №6

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 8 9 12 13 16 O1 O2 O3 O4 17 22 23 28 29 32 O4 O5 O6

Тесты:

>>> main([('O1', '0x53'), ('O2', '0x2'), ('O3', '0xd'), ('O4', '0x1a4'), ('O5', '0x8'), ('O6', '0x7')])
'3828652883'

>>> main([('O1', '0x64'), ('O2', '0x2'), ('O3', '0xa'), ('O4', '0x1b6'), ('O5', '0x6'), ('O6', '0xf')])
'8106988900'

>>> main([('O1', '0x6b'), ('O2', '0x0'), ('O3', '0x4'), ('O4', '0x379'), ('O5', '0x1'), ('O6', '0x9')])
'4847511659'

>>> main([('O1', '0x5d'), ('O2', '0x1'), ('O3', '0x2'), ('O4', '0xa'), ('O5', '0x12'), ('O6', '0x0')])
'151078109'

Вариант №7

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 12 13 20 21 23 D1 D2 D4 24 26 27 36 37 46 D4 D5 D6

Тесты:

>>> main([('D1', '0x0'), ('D2', '0x138'), ('D4', '0x2e'), ('D5', '0x30c'), ('D6', '0x85')])
'0x10b865c01380'

>>> main([('D1', '0x5'), ('D2', '0x71'), ('D4', '0x3'), ('D5', '0xd4'), ('D6', '0x242')])
'0x4846a0600715'

>>> main([('D1', '0x1'), ('D2', '0x133'), ('D4', '0x1b'), ('D5', '0x1ac'), ('D6', '0x202')])
'0x404d63601331'

>>> main([('D1', '0xb'), ('D2', '0xc'), ('D4', '0x32'), ('D5', '0x125'), ('D6', '0x3e4')])
'0x7c892e4000cb'

Вариант №8

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 6 7 8 11 12 18 L1 L2 L3 L4 L5

Тесты:

>>> main([('L1', '0x6'), ('L2', '0x1'), ('L3', '0x1'), ('L4', '0x9'), ('L5', '0x3d')])
'252302'

>>> main([('L1', '0x0'), ('L2', '0xa'), ('L3', '0x1'), ('L4', '0x1'), ('L5', '0x4c')])
'311760'

>>> main([('L1', '0x7'), ('L2', '0x6'), ('L3', '0x0'), ('L4', '0x9'), ('L5', '0x3b')])
'244023'

>>> main([('L1', '0x6'), ('L2', '0xe'), ('L3', '0x1'), ('L4', '0xa'), ('L5', '0x6e')])
'453366'

Вариант №9

Задача №8

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

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

Целое.
0 6 7 13 14 22 23 K1 K2 K4

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

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

Тесты:

>>> main(14247865)
(57, 79, 1)

>>> main(8927415)
(55, 113, 1)

>>> main(14953746)
(18, 90, 1)

>>> main(2867334)
(6, 1, 0)

Вариант №10

Задача №8

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

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

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

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

Десятичная строка.
0 7 8 13 14 17 18 21 22 23 28 E1 E2 E3 E4 E6

Тесты:

>>> main({'E1': '0x30', 'E2': '0x1a', 'E3': '0x9', 'E4': '0x0', 'E6': '0x19'})
'209869360'

>>> main({'E1': '0xb3', 'E2': '0x1a', 'E3': '0x4', 'E4': '0x9', 'E6': '0x2e'})
'388307635'

>>> main({'E1': '0x6d', 'E2': '0x1a', 'E3': '0x4', 'E4': '0x5', 'E6': '0x4'})
'34937453'

>>> main({'E1': '0x29', 'E2': '0x19', 'E3': '0xa', 'E4': '0x5', 'E6': '0x1b'})
'227973417'

Вариант №11

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 2 3 10 11 16 H1 H2 H3 17 20 21 22 23 32 H3 H4 H5

Тесты:

>>> main({'H1': '0x5', 'H2': '0x40', 'H3': '0x1bb', 'H4': '0x0', 'H5': '0x15b'})
'0xad8dda05'

>>> main({'H1': '0x5', 'H2': '0x3f', 'H3': '0x26d', 'H4': '0x1', 'H5': '0x168'})
'0xb43369fd'

>>> main({'H1': '0x3', 'H2': '0x4d', 'H3': '0x329', 'H4': '0x3', 'H5': '0x217'})
'0x10bf94a6b'

>>> main({'H1': '0x7', 'H2': '0x15', 'H3': '0x197', 'H4': '0x2', 'H5': '0x38c'})
'0x1c64cb8af'

Вариант №12

Задача №8

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

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

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

0 5 6 11 12 15 16 24 I1 I2 I4

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

Целое.

0 3 4 12 13 18 19 24 I4 I2 I1

Тесты:

>>> main('7090261')
11019968

>>> main('520223')
16253040

>>> main('31973033')
21978736

>>> main('5255329')
17319168

Вариант №13

Задача №8

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

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

Целое.

0 6 7 14 15 17 M1 M2 M3 18 24 25 26 27 34 M3 M4 M5

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

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

0 7 8 9 10 17 M2 M4 M3 18 19 20 26 27 34 M3 M1 M5

Тесты:

>>> main(23628206476)
'0x580c2cca3'

>>> main(28343074544)
'0x69f0b04fd'

>>> main(26017690374)
'0x6086633e6'

>>> main(24965652259)
'0x5d2308c3e'

Вариант №14

Задача №8

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

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

Целое.

0 6 7 13 14 23 24 Z1 Z3 Z4

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

Целое.

0 6 7 8 17 18 24 Z1 Z4 Z3

Тесты:

>>> main(3674542)
57390

>>> main(25342434)
133858

>>> main(21861593)
79577

>>> main(11923324)
186236

Вариант №15

Задача №8

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

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

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

0 4 5 13 14 18 Q1 Q2 Q3 19 20 21 28 29 36 Q3 Q5

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

Целое.

0 4 5 12 13 18 Q1 Q5 19 20 21 27 28 36 Q5 Q3 Q2

Тесты:

>>> main('112290466222')
20742545422

>>> main('46783561333')
133985656853

>>> main('82571902225')
131090030609

>>> main('131957613282')
74973093890

Вариант №16

Задача №8

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

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

Десятичная строка.
0 1 10 11 13 14 16 Y2 Y3 Y4

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

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

Тесты:

>>> main('92118')
{'Y2': '0x3eb', 'Y3': '0x4', 'Y4': '0x5'}

>>> main('75458')
{'Y2': '0x361', 'Y3': '0x4', 'Y4': '0x4'}

>>> main('3414')
{'Y2': '0x2ab', 'Y3': '0x1', 'Y4': '0x0'}

>>> main('3149')
{'Y2': '0x226', 'Y3': '0x1', 'Y4': '0x0'}

Вариант №17

Задача №8

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

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

Шестнадцатиричная строка.
0 1 2 5 6 15 16 24 H1 H2 H3 H4

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

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

Тесты:

>>> main('0xf76605')
[('H1', '0x1'), ('H2', '0x1'), ('H3', '0x198'), ('H4', '0xf7')]

>>> main('0x165221d')
[('H1', '0x1'), ('H2', '0x7'), ('H3', '0x88'), ('H4', '0x165')]

>>> main('0x2fcd7b')
[('H1', '0x3'), ('H2', '0xe'), ('H3', '0x335'), ('H4', '0x2f')]

>>> main('0xdaeeff')
[('H1', '0x3'), ('H2', '0xf'), ('H3', '0x3bb'), ('H4', '0xda')]

Вариант №18

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 18 19 20 21 25 26 28 U1 U3 U4 U5

Тесты:

>>> main(('0x148', '0x3', '0x1', '0x1'))
'70779208'

>>> main(('0x1f8', '0x3', '0x1d', '0x5'))
'397935096'

>>> main(('0x50', '0x0', '0x13', '0x7'))
'509608016'

>>> main(('0x49', '0x2', '0x6', '0x1'))
'80740425'

Вариант №19

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 17 18 19 S1 S2 S3 20 28 29 31 32 38 S4 S5

Тесты:

>>> main(('150', '457', '0', '318', '6'))
'3554906774'

>>> main(('366', '406', '1', '10', '6'))
'3232181614'

>>> main(('413', '182', '0', '151', '3'))
'1769041309'

>>> main(('436', '197', '3', '143', '1'))
'687705012'

Вариант №20

Задача №8

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

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

Десятичная строка.
0 3 4 5 6 7 8 15 16 17 18 19 H1 H2 H4 H5 H6

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

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

Тесты:

>>> main('643400')
[('H1', 8), ('H2', 0), ('H4', 209), ('H5', 1), ('H6', 2)]

>>> main('455073')
[('H1', 1), ('H2', 2), ('H4', 241), ('H5', 2), ('H6', 1)]

>>> main('940445')
[('H1', 13), ('H2', 1), ('H4', 89), ('H5', 2), ('H6', 3)]

>>> main('477932')
[('H1', 12), ('H2', 2), ('H4', 74), ('H5', 3), ('H6', 1)]

Вариант №21

Задача №8

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

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

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

0 5 6 14 15 16 Y1 Y2 Y3 17 21 22 27 28 32 Y3 Y4

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

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

0 4 5 10 11 16 Y4 Y2 17 19 20 25 26 32 Y2 Y1 Y3

Тесты:

>>> main('39667082')
'0xe8a8b120'

>>> main('11989013')
'0x1b55e0040'

>>> main('67332906')
'0x1aad6200'

>>> main('111297115')
'0x111b84b40'

Вариант №22

Задача №8

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

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

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

0 4 5 14 15 17 18 19 T1 T2 T3 T4 20 24 25 31 32 39 T4 T6

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

Целое.

0 4 5 14 15 17 18 19 T1 T2 T3 T6 20 25 26 32 33 39 T6 T4

Тесты:

>>> main('8810082065')
4765462289

>>> main('635461241343')
1917651455

>>> main('965742135449')
3078850713

>>> main('404724321934')
6198857358

Вариант №23

Задача №8

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

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

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

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

Целое.
0 4 5 8 9 15 16 20 D2 D3 D4 21 24 25 31 32 41 D4 D5 D6

Тесты:

>>> main(('15', '10', '155', '40', '898'))
3858232972768

>>> main(('11', '89', '174', '78', '458'))
1969723716448

>>> main(('2', '120', '503', '18', '177'))
760846217280

>>> main(('0', '113', '17', '36', '94'))
404936057344

Вариант №24

Задача №8

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

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

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

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

Целое.
0 5 6 11 12 17 J1 J3 18 20 21 22 23 31 32 35 J3 J4 J5 J6

Тесты:

>>> main({'J1': 9, 'J3': 202, 'J4': 1, 'J5': 155, 'J6': 13})
57137733641

>>> main({'J1': 7, 'J3': 138, 'J4': 2, 'J5': 182, 'J6': 6})
27301289991

>>> main({'J1': 4, 'J3': 481, 'J4': 0, 'J5': 267, 'J6': 4})
19421597700

>>> main({'J1': 33, 'J3': 391, 'J4': 2, 'J5': 399, 'J6': 1})
7647817761

Вариант №25

Задача №8

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

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

Шестнадцатиричная строка.
0 1 9 10 11 18 F1 F2 F3 F4

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

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

Тесты:

>>> main('0x2c269')
{'F1': '0x1', 'F2': '0x134', 'F3': '0x0', 'F4': '0x58'}

>>> main('0x2358e')
{'F1': '0x0', 'F2': '0xc7', 'F3': '0x1', 'F4': '0x46'}

>>> main('0x25402')
{'F1': '0x0', 'F2': '0x1', 'F3': '0x1', 'F4': '0x4a'}

>>> main('0x4c0e7')
{'F1': '0x1', 'F2': '0x73', 'F3': '0x0', 'F4': '0x98'}

Вариант №26

Задача №8

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

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

Шестнадцатиричная строка.
0 3 4 6 7 16 17 18 N1 N2 N3 N4

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

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

Тесты:

>>> main('0x30bc2')
[('N1', '0x2'), ('N2', '0x4'), ('N3', '0x217'), ('N4', '0x1')]

>>> main('0x4ba2a')
[('N1', '0xa'), ('N2', '0x2'), ('N3', '0x174'), ('N4', '0x2')]

>>> main('0x7b486')
[('N1', '0x6'), ('N2', '0x0'), ('N3', '0x369'), ('N4', '0x3')]

>>> main('0x74777')
[('N1', '0x7'), ('N2', '0x7'), ('N3', '0x28e'), ('N4', '0x3')]

Вариант №27

Задача №8

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

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

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

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

Десятичная строка.
0 3 4 5 6 14 15 17 18 P1 P2 P3 P4 P5

Тесты:

>>> main({'P1': 7, 'P2': 1, 'P3': 24, 'P4': 3, 'P5': 1})
'362007'

>>> main({'P1': 0, 'P2': 0, 'P3': 453, 'P4': 7, 'P5': 1})
'520512'

>>> main({'P1': 10, 'P2': 3, 'P3': 441, 'P4': 0, 'P5': 1})
'290426'

>>> main({'P1': 13, 'P2': 2, 'P3': 23, 'P4': 0, 'P5': 0})
'1517'

Вариант №28

Задача №8

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

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

Десятичная строка.
0 9 10 11 12 15 16 P1 P2 P3 P4 P5

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

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

Тесты:

>>> main('48133')
{'P1': 5, 'P2': 1, 'P3': 1, 'P4': 11, 'P5': 0}

>>> main('73989')
{'P1': 261, 'P2': 0, 'P3': 0, 'P4': 2, 'P5': 1}

>>> main('119779')
{'P1': 995, 'P2': 0, 'P3': 0, 'P4': 13, 'P5': 1}

>>> main('5705')
{'P1': 585, 'P2': 1, 'P3': 0, 'P4': 1, 'P5': 0}

Вариант №29

Задача №8

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

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

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

0 2 3 7 8 9 10 19 20 C2 C3 C4 C5

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

Целое.

0 1 2 6 7 8 17 18 20 C3 C2 C5 C4

Тесты:

>>> main('1355488')
76786

>>> main('563463')
140801

>>> main('210924')
52599

>>> main('309674')
77397

Вариант №30

Задача №8

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

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

Целое.

0 9 10 18 19 20 21 S1 S2 S3 S4 22 30 31 36 37 43 S4 S5 S6

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

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

0 6 7 12 13 21 S6 S5 S2 22 23 24 33 34 43 S3 S4 S1

Тесты:

>>> main(10069161939699)
'12984870013001'

>>> main(8714706327571)
'328158989631'

>>> main(13418044078235)
'2667409691745'

>>> main(16593240201444)
'3931262474104'

Вариант №31

Задача №8

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

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

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

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

Десятичная строка.
0 1 2 9 10 17 18 19 20 22 23 25 N1 N3 N4 N5 N6

Тесты:

>>> main(('0x2', '0xe1', '0x3', '0x0', '0x2'))
'17794050'

>>> main(('0x2', '0xa1', '0x3', '0x5', '0x1'))
'14582786'

>>> main(('0x1', '0x62', '0x3', '0x2', '0x3'))
'28149761'

>>> main(('0x3', '0x6', '0x3', '0x2', '0x5'))
'44832771'

Вариант №32

Задача №8

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

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

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

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

Целое.
0 6 7 15 W1 W2 16 21 22 31 W4

Тесты:

>>> main([('W1', '0x16'), ('W2', '0x64'), ('W4', '0x5')])
20984342

>>> main([('W1', '0x32'), ('W2', '0x106'), ('W4', '0x242')])
2424341298

>>> main([('W1', '0x53'), ('W2', '0x15'), ('W4', '0x2d4')])
3036678867

>>> main([('W1', '0x64'), ('W2', '0x83'), ('W4', '0x376')])
3716170212

Вариант №33

Задача №8

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

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

Целое.
0 3 4 8 9 11 12 13 14 18 P1 P2 P3 P5

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

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

Тесты:

>>> main(370084)
(4, 26, 2, 22)

>>> main(218187)
(11, 4, 2, 13)

>>> main(199690)
(10, 0, 6, 12)

>>> main(272486)
(6, 6, 4, 16)

Вариант №34

Задача №8

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

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

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

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

Целое.
0 3 4 10 11 12 13 14 15 16 23 I1 I2 I3 I5 I6

Тесты:

>>> main({'I1': 7, 'I2': 88, 'I3': 0, 'I5': 2, 'I6': 250})
16418183

>>> main({'I1': 13, 'I2': 122, 'I3': 3, 'I5': 3, 'I6': 71})
4710317

>>> main({'I1': 1, 'I2': 29, 'I3': 1, 'I5': 2, 'I6': 89})
5867985

>>> main({'I1': 8, 'I2': 105, 'I3': 2, 'I5': 3, 'I6': 157})
10344088

Вариант №35

Задача №8

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

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

Шестнадцатиричная строка.
0 9 10 18 19 20 21 24 Z1 Z2 Z3 Z4

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

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

Тесты:

>>> main('0xb967a4')
{'Z1': '0x3a4', 'Z2': '0x59', 'Z3': '0x3', 'Z4': '0x5'}

>>> main('0x13f603')
{'Z1': '0x203', 'Z2': '0xfd', 'Z3': '0x2', 'Z4': '0x0'}

>>> main('0x8e1656')
{'Z1': '0x256', 'Z2': '0x185', 'Z3': '0x1', 'Z4': '0x4'}

>>> main('0x1f52363')
{'Z1': '0x363', 'Z2': '0x148', 'Z3': '0x2', 'Z4': '0xf'}

Вариант №36

Задача №8

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

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

Целое.
0 6 7 11 12 14 15 G1 G2 G3 16 20 21 27 28 31 G5 G6

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

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

Тесты:

>>> main(2794103542)
{'G1': '0x76', 'G2': '0x5', 'G3': '0x2', 'G5': '0x34', 'G6': '0xa'}

>>> main(2890565866)
{'G1': '0x6a', 'G2': '0x11', 'G3': '0x0', 'G5': '0x62', 'G6': '0xa'}

>>> main(2994659400)
{'G1': '0x48', 'G2': '0x0', 'G3': '0x6', 'G5': '0x13', 'G6': '0xb'}

>>> main(1103657941)
{'G1': '0x55', 'G2': '0x17', 'G3': '0x7', 'G5': '0xe', 'G6': '0x4'}

Вариант №37

Задача №8

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

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

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

0 9 10 12 13 15 16 18 A1 A2 A3 A4 19 25 26 31 32 37 A4 A5 A6

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

Целое.

0 2 3 8 9 18 A2 A6 A1 19 21 22 27 28 37 A3 A5 A4

Тесты:

>>> main('149702947477')
205582576404

>>> main('249652380513')
30367204304

>>> main('210188722884')
15554414976

>>> main('270032387820')
219006491127

Вариант №38

Задача №8

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

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

Целое.
0 1 3 4 11 12 13 17 18 20 A1 A2 A3 A5 A6

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

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

Тесты:

>>> main(1233525)
[('A1', '0x1'), ('A2', '0x2'), ('A3', '0x27'), ('A5', '0x16'), ('A6', '0x4')]

>>> main(406696)
[('A1', '0x0'), ('A2', '0x4'), ('A3', '0x4a'), ('A5', '0x11'), ('A6', '0x1')]

>>> main(419748)
[('A1', '0x0'), ('A2', '0x2'), ('A3', '0x7a'), ('A5', '0x13'), ('A6', '0x1')]

>>> main(1462571)
[('A1', '0x1'), ('A2', '0x5'), ('A3', '0x12'), ('A5', '0x12'), ('A6', '0x5')]

Вариант №39

Задача №8

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

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

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

0 7 8 12 13 16 17 19 Y2 Y3 Y4

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

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

0 3 4 11 12 16 17 19 Y3 Y2 Y4

Тесты:

>>> main('0x5727b')
'335883'

>>> main('0x7b848')
'491533'

>>> main('0xbdbfb')
'765966'

>>> main('0x7b656')
'483341'

Вариант №40

Задача №8

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

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

Целое.
0 1 2 3 4 9 10 19 20 28 N1 N2 N4 N5

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

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

Тесты:

>>> main(422475057)
[('N1', '1'), ('N2', '0'), ('N4', '925'), ('N5', '402')]

>>> main(8026497)
[('N1', '1'), ('N2', '0'), ('N4', '670'), ('N5', '7')]

>>> main(161220878)
[('N1', '2'), ('N2', '3'), ('N4', '770'), ('N5', '153')]

>>> main(232227889)
[('N1', '1'), ('N2', '0'), ('N4', '481'), ('N5', '221')]