ИВБО-03-22

Вариант №1

Задача №8

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

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

Целое.

0 2 3 8 9 10 11 18 S1 S2 S3

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

Целое.

0 2 3 10 11 12 13 18 S1 S3 S2

Тесты:

>>> main(1771)
243715

>>> main(1276)
258052

>>> main(185)
188417

>>> main(1465)
454657

Вариант №2

Задача №8

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

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

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

0 4 5 8 9 16 17 20 V1 V2 V3 V4 21 26 27 32 33 41 V4 V6

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

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

0 5 6 9 10 19 20 V2 V4 V6 21 28 29 36 37 41 V6 V3 V1

Тесты:

>>> main('0x72652fdbed')
'0x1bda39a5fc0'

>>> main('0x261ba7a802c')
'0x1881304f440'

>>> main('0x16b8c3cf413')
'0x26f4b587800'

>>> main('0x9c716fe21e')
'0x3de24e2dc00'

Вариант №3

Задача №8

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

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

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

0 5 6 7 11 12 13 O1 O2 O3 O4

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

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

0 1 6 7 11 12 13 O2 O1 O3 O4

Тесты:

>>> main('0x31ec')
'0x31d9'

>>> main('0x1499')
'0x14b2'

>>> main('0x2db3')
'0x2de6'

>>> main('0xe79')
'0xe73'

Вариант №4

Задача №8

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

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

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

0 1 3 4 5 6 8 V2 V3 V4

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

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

0 1 3 4 6 7 8 V2 V4 V3

Тесты:

>>> main('253')
'444'

>>> main('153')
'168'

>>> main('22')
'134'

>>> main('118')
'406'

Вариант №5

Задача №8

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

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

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

0 2 3 5 6 9 10 18 G1 G2 G4

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

Целое.

0 8 9 11 12 15 16 18 G4 G1 G2

Тесты:

>>> main('251712')
245

>>> main('262205')
461568

>>> main('461435')
460738

>>> main('207912')
327883

Вариант №6

Задача №8

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

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

Десятичная строка.
0 5 6 7 8 10 11 12 13 15 16 P1 P2 P3 P4 P5 P6

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

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

Тесты:

>>> main('51917')
[('P1', '13'), ('P2', '3'), ('P3', '2'), ('P4', '1'), ('P5', '6'), ('P6', '0')]

>>> main('29267')
[('P1', '19'), ('P2', '1'), ('P3', '2'), ('P4', '2'), ('P5', '3'), ('P6', '0')]

>>> main('46142')
[('P1', '62'), ('P2', '0'), ('P3', '4'), ('P4', '2'), ('P5', '5'), ('P6', '0')]

>>> main('32927')
[('P1', '31'), ('P2', '2'), ('P3', '0'), ('P4', '0'), ('P5', '4'), ('P6', '0')]

Вариант №7

Задача №8

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

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

Десятичная строка.
0 3 4 5 8 9 13 14 21 22 25 E1 E2 E4 E5 E6

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

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

Тесты:

>>> main('3686718')
(14, 1, 0, 225, 0)

>>> main('17926632')
(8, 0, 4, 70, 4)

>>> main('64954886')
(6, 0, 17, 124, 15)

>>> main('1666730')
(10, 0, 23, 101, 0)

Вариант №8

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 17 18 19 V1 V2 V3 20 21 25 26 32 33 39 V3 V4 V5 V6

Тесты:

>>> main([('V1', 98), ('V2', 973), ('V3', 2), ('V4', 11), ('V5', 105), ('V6', 50)])
'0x65a56bcd62'

>>> main([('V1', 30), ('V2', 955), ('V3', 2), ('V4', 13), ('V5', 30), ('V6', 7)])
'0xe79abbb1e'

>>> main([('V1', 154), ('V2', 391), ('V3', 1), ('V4', 1), ('V5', 55), ('V6', 28)])
'0x38dc25879a'

>>> main([('V1', 164), ('V2', 149), ('V3', 6), ('V4', 23), ('V5', 92), ('V6', 90)])
'0xb572f895a4'

Вариант №9

Задача №8

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

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

Целое.

0 3 4 11 12 16 E1 E3 17 18 19 20 26 27 33 E3 E4 E5 E6

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

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

0 1 7 8 14 15 16 E4 E3 E6 17 22 23 29 30 33 E5 E1

Тесты:

>>> main(10509330072)
'0x213004ef4'

>>> main(11288846880)
'0x68054c5'

>>> main(11980162416)
'0x10805958'

>>> main(5513971986)
'0x85002911'

Вариант №10

Задача №8

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

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

Целое.

0 7 8 10 11 14 15 19 Z1 Z2 Z3

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

Целое.

0 7 8 11 12 16 17 19 Z1 Z3 Z2

Тесты:

>>> main(11292)
525596

>>> main(288)
131104

>>> main(16845)
133325

>>> main(23694)
527246

Вариант №11

Задача №8

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

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

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

0 1 2 6 7 16 17 21 22 26 B1 B2 B3 B4 B5

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

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

0 1 2 6 7 11 12 16 17 26 B1 B4 B5 B2 B3

Тесты:

>>> main('0xb320ff')
'0x483f167'

>>> main('0x193a497')
'0x6925327'

>>> main('0x555ee78')
'0x7b9eaa8'

>>> main('0x5abcbfe')
'0x72ffb56'

Вариант №12

Задача №8

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

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

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

0 1 2 3 4 10 11 12 P1 P3 P4

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

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

0 1 2 3 4 10 11 12 P4 P3 P1

Тесты:

>>> main('0x504')
'0x500'

>>> main('0x187')
'0x1980'

>>> main('0x1d8')
'0x1d0'

>>> main('0x180e')
'0x100c'

Вариант №13

Задача №8

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

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

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

0 1 2 10 11 14 15 16 17 18 E1 E2 E4 E5

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

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

0 1 2 5 6 7 8 16 17 18 E4 E5 E2 E1

Тесты:

>>> main('497225')
'0x392c3'

>>> main('149224')
'0x1ba40'

>>> main('420480')
'0xa0c0'

>>> main('177853')
'0x3af41'

Вариант №14

Задача №8

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

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

Шестнадцатиричная строка.
0 9 10 15 16 20 C1 C2 C3 21 23 24 27 28 32 33 41 C3 C4 C5 C6

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

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

Тесты:

>>> main('0xdd17b923d6')
[('C1', '982'), ('C2', '8'), ('C3', '185'), ('C4', '7'), ('C5', '17'), ('C6', '110')]

>>> main('0x28008e2654c')
[('C1', '332'), ('C2', '25'), ('C3', '226'), ('C4', '8'), ('C5', '0'), ('C6', '320')]

>>> main('0x229a7f674bd')
[('C1', '189'), ('C2', '29'), ('C3', '246'), ('C4', '7'), ('C5', '26'), ('C6', '276')]

>>> main('0x2f825b39d51')
[('C1', '337'), ('C2', '39'), ('C3', '179'), ('C4', '5'), ('C5', '2'), ('C6', '380')]

Вариант №15

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 10 11 15 C1 C2 C3 16 18 19 24 25 31 C3 C4 C5

Тесты:

>>> main(('0xb7', '0x7', '0xaa', '0x12', '0x44'))
'0x889557b7'

>>> main(('0xc1', '0x3', '0xcc', '0x2b', '0x3d'))
'0x7b5e63c1'

>>> main(('0xda', '0x4', '0x2', '0x22', '0x6b'))
'0xd71014da'

>>> main(('0x68', '0x2', '0x29', '0xd', '0xc'))
'0x18694a68'

Вариант №16

Задача №8

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

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

Десятичная строка.
0 1 2 11 12 19 20 Q1 Q2 Q3 21 26 27 36 37 41 Q5 Q6

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

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

Тесты:

>>> main('4209331268813')
{'Q1': 1, 'Q2': 819, 'Q3': 30, 'Q5': 641, 'Q6': 30}

>>> main('2403283564780')
{'Q1': 0, 'Q2': 571, 'Q3': 207, 'Q5': 497, 'Q6': 17}

>>> main('2787526682395')
{'Q1': 3, 'Q2': 454, 'Q3': 154, 'Q5': 288, 'Q6': 20}

>>> main('394341620823')
{'Q1': 3, 'Q2': 789, 'Q3': 121, 'Q5': 890, 'Q6': 2}

Вариант №17

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 5 6 11 12 13 19 20 21 S1 S2 S3 S4 S5

Тесты:

>>> main(('0x1b', '0x36', '0x1', '0x38', '0x2'))
'0x271d9b'

>>> main(('0x31', '0x36', '0x0', '0x5', '0x1'))
'0x10adb1'

>>> main(('0x3b', '0x2d', '0x1', '0x4e', '0x0'))
'0x9db7b'

>>> main(('0x27', '0x9', '0x1', '0x2', '0x3'))
'0x305267'

Вариант №18

Задача №8

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

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

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

0 6 7 12 13 18 19 23 F1 F2 F3 F4

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

Целое.

0 5 6 12 13 18 19 23 F2 F1 F3 F4

Тесты:

>>> main('14458771')
14451967

>>> main('11846292')
11846917

>>> main('4009587')
4013276

>>> main('8695277')
8698715

Вариант №19

Задача №8

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

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

Десятичная строка.
0 1 2 3 4 13 14 22 23 27 O1 O2 O3 O4 O5

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

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

Тесты:

>>> main('4633994')
{'O1': '0', 'O2': '1', 'O3': '1', 'O4': '856', 'O5': '282'}

>>> main('1789156')
{'O1': '0', 'O2': '2', 'O3': '0', 'O4': '206', 'O5': '109'}

>>> main('351355')
{'O1': '1', 'O2': '1', 'O3': '1', 'O4': '455', 'O5': '21'}

>>> main('1526602')
{'O1': '0', 'O2': '1', 'O3': '1', 'O4': '180', 'O5': '93'}

Вариант №20

Задача №8

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

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

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

0 6 7 11 12 17 I1 I2 I3 18 21 22 31 32 34 35 I3 I4 I5 I6

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

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

0 1 10 11 17 I6 I3 I4 18 20 21 23 24 30 31 35 I4 I5 I1 I2

Тесты:

>>> main('0x6a1bf61dc')
'0x1dcd437ec'

>>> main('0x77b0290da')
'0xdaef6052'

>>> main('0x111792284')
'0x284222f24'

>>> main('0xc5d3628e6')
'0x8e68ba6c5'

Вариант №21

Задача №8

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

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

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

0 1 9 10 16 17 24 L1 L2 L3 L4

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

Целое.

0 8 9 16 17 18 24 L2 L4 L1 L3

Тесты:

>>> main('0x11f5a22')
22617873

>>> main('0x9d24c2')
19176545

>>> main('0x1c0cd88')
13484228

>>> main('0x7031e0')
3174640

Вариант №22

Задача №8

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

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

Целое.

0 5 6 15 16 17 U1 U2 U3 18 24 25 30 31 35 U3 U4 U5

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

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

0 9 10 17 U2 U3 18 19 24 25 29 30 35 U3 U1 U5 U4

Тесты:

>>> main(30624446438)
'0x41d356fdf'

>>> main(57735124746)
'0xe3455205c'

>>> main(43900633718)
'0x729b2ba09'

>>> main(34795017296)
'0x32087c751'

Вариант №23

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 15 16 22 23 24 25 30 L1 L2 L3 L5

Тесты:

>>> main({'L1': '57', 'L2': '91', 'L3': '118', 'L5': '29'})
'980858425'

>>> main({'L1': '77', 'L2': '10', 'L3': '11', 'L5': '29'})
'973804621'

>>> main({'L1': '466', 'L2': '122', 'L3': '66', 'L5': '31'})
'1044575698'

>>> main({'L1': '404', 'L2': '2', 'L3': '29', 'L5': '28'})
'941426068'

Вариант №24

Задача №8

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

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

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

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

Десятичная строка.
0 5 6 14 15 18 P1 P2 P3 19 22 23 25 26 33 34 37 P3 P4 P5

Тесты:

>>> main(('3', '368', '254', '4', '248'))
'16684899331'

>>> main(('11', '203', '129', '3', '216'))
'14524920523'

>>> main(('10', '346', '7', '5', '235'))
'15812777610'

>>> main(('48', '76', '221', '4', '5'))
'376345392'

Вариант №25

Задача №8

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

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

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

0 3 4 12 13 17 W1 W3 18 19 24 25 33 34 W3 W4 W5 W6

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

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

0 5 6 7 12 13 16 17 W3 W6 W4 W1 18 25 26 34 W5

Тесты:

>>> main('30229043073')
'0x610003cd4'

>>> main('5019101528')
'0x25401128b'

>>> main('25683567335')
'0x3f400ede1'

>>> main('6749789404')
'0x32401850c'

Вариант №26

Задача №8

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

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

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

0 6 7 9 10 14 15 19 W1 W2 W3

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

Целое.

0 2 3 7 8 12 13 19 W2 W3 W1

Тесты:

>>> main('0x3ac0')
524405

>>> main('0x5ef')
909323

>>> main('0x2d7f')
1040474

>>> main('0x356e')
901226

Вариант №27

Задача №8

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

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

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

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

Десятичная строка.
0 5 6 11 12 15 H1 H2 H3 16 17 18 27 28 31 H3 H4 H5

Тесты:

>>> main([('H1', '0x2b'), ('H2', '0x21'), ('H3', '0x13'), ('H4', '0x236'), ('H5', '0x8')])
'2295937131'

>>> main([('H1', '0x38'), ('H2', '0x39'), ('H3', '0x14'), ('H4', '0x2bc'), ('H5', '0x9')])
'2599505528'

>>> main([('H1', '0x2d'), ('H2', '0x23'), ('H3', '0x1a'), ('H4', '0x2f3'), ('H5', '0x9')])
'2613946605'

>>> main([('H1', '0x20'), ('H2', '0x2c'), ('H3', '0x2c'), ('H4', '0x232'), ('H5', '0x7')])
'2026556192'

Вариант №28

Задача №8

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

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

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

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

Целое.
0 3 4 13 14 16 R1 R2 R3 17 19 20 27 28 33 R3 R5

Тесты:

>>> main(('0x7', '0x371', '0x19', '0x2b'))
11543148311

>>> main(('0x4', '0x1a', '0x17', '0x15'))
5637521828

>>> main(('0x7', '0x3ba', '0x2', '0x1a'))
6979369895

>>> main(('0xd', '0x3a8', '0x9', '0x28'))
10737580685

Вариант №29

Задача №8

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

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

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

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

Целое.
0 1 2 3 4 8 9 17 18 19 20 29 O1 O2 O3 O4 O5 O6

Тесты:

>>> main([('O1', 3), ('O2', 0), ('O3', 13), ('O4', 39), ('O5', 3), ('O6', 608)])
638340819

>>> main([('O1', 3), ('O2', 3), ('O3', 25), ('O4', 472), ('O5', 3), ('O6', 517)])
543142303

>>> main([('O1', 1), ('O2', 0), ('O3', 3), ('O4', 267), ('O5', 1), ('O6', 451)])
473306673

>>> main([('O1', 2), ('O2', 2), ('O3', 24), ('O4', 274), ('O5', 3), ('O6', 910)])
955131274

Вариант №30

Задача №8

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

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

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

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

Целое.
0 7 8 9 10 13 14 17 C1 C2 C3 C4 C5

Тесты:

>>> main([('C1', '90'), ('C2', '0'), ('C3', '0'), ('C4', '14'), ('C5', '3')])
63578

>>> main([('C1', '4'), ('C2', '1'), ('C3', '1'), ('C4', '9'), ('C5', '5')])
91908

>>> main([('C1', '46'), ('C2', '1'), ('C3', '1'), ('C4', '8'), ('C5', '7')])
123694

>>> main([('C1', '135'), ('C2', '1'), ('C3', '0'), ('C4', '15'), ('C5', '3')])
64903

Вариант №31

Задача №8

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

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

Целое.
0 9 10 11 12 14 15 18 E1 E2 E3 E4

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

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

Тесты:

>>> main(486161)
(785, 2, 6, 14)

>>> main(111147)
(555, 0, 3, 3)

>>> main(76849)
(49, 3, 2, 2)

>>> main(475120)
(1008, 3, 3, 14)

Вариант №32

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 15 N1 N2 16 18 19 20 21 22 27 28 31 N2 N3 N4 N5

Тесты:

>>> main([('N1', 960), ('N2', 49), ('N3', 3), ('N4', 1), ('N5', 24)])
'104384448'

>>> main([('N1', 862), ('N2', 443), ('N3', 0), ('N4', 0), ('N5', 14)])
'59174750'

>>> main([('N1', 461), ('N2', 349), ('N3', 2), ('N4', 0), ('N5', 44)])
'185955789'

>>> main([('N1', 603), ('N2', 307), ('N3', 1), ('N4', 0), ('N5', 13)])
'55365211'

Вариант №33

Задача №8

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

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

Десятичная строка.
0 7 8 9 10 19 U1 U2 U3 20 29 30 34 35 39 U4 U6

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

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

Тесты:

>>> main('919314017025')
{'U1': 1, 'U2': 3, 'U3': 170, 'U4': 182, 'U6': 26}

>>> main('1048913131231')
{'U1': 223, 'U2': 2, 'U3': 525, 'U4': 897, 'U6': 30}

>>> main('749693049147')
{'U1': 59, 'U2': 1, 'U3': 6, 'U4': 211, 'U6': 21}

>>> main('451271614592')
{'U1': 128, 'U2': 0, 'U3': 152, 'U4': 286, 'U6': 13}

Вариант №34

Задача №8

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

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

Целое.
0 8 9 14 15 18 I2 I3 19 23 24 28 29 30 37 I3 I4 I5 I6

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

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

Тесты:

>>> main(122791471946)
{'I2': 21, 'I3': 482, 'I4': 22, 'I5': 0, 'I6': 114}

>>> main(124408115170)
{'I2': 23, 'I3': 154, 'I4': 23, 'I5': 1, 'I6': 115}

>>> main(125893290565)
{'I2': 21, 'I3': 422, 'I4': 15, 'I5': 0, 'I6': 117}

>>> main(179113606287)
{'I2': 30, 'I3': 1, 'I4': 20, 'I5': 1, 'I6': 166}

Вариант №35

Задача №8

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

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

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

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

Целое.
0 7 8 9 10 11 12 18 19 27 G1 G3 G4 G5

Тесты:

>>> main([('G1', 50), ('G3', 3), ('G4', 99), ('G5', 420)])
220609586

>>> main([('G1', 132), ('G3', 0), ('G4', 45), ('G5', 211)])
110809220

>>> main([('G1', 236), ('G3', 3), ('G4', 46), ('G5', 100)])
52620524

>>> main([('G1', 165), ('G3', 1), ('G4', 78), ('G5', 371)])
194831525

Вариант №36

Задача №8

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

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

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

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

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

Тесты:

>>> main([('N1', '2'), ('N2', '2'), ('N3', '89'), ('N4', '2')])
'0x56412'

>>> main([('N1', '4'), ('N2', '56'), ('N3', '28'), ('N4', '0')])
'0x71c4'

>>> main([('N1', '3'), ('N2', '2'), ('N3', '85'), ('N4', '1')])
'0x35413'

>>> main([('N1', '0'), ('N2', '11'), ('N3', '24'), ('N4', '1')])
'0x26058'

Вариант №37

Задача №8

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

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

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

0 5 6 14 15 16 R1 R2 R3 R4 17 22 23 24 25 32 R4 R5 R6

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

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

0 7 8 14 15 16 R6 R4 R3 R5 17 18 26 27 32 R5 R2 R1

Тесты:

>>> main('0x13a0777a4')
'0x12778079d'

>>> main('0xa3330cb')
'0x5b0c3305'

>>> main('0x915e192a')
'0x151925e48'

>>> main('0x152642070')
'0x1820464a9'

Вариант №38

Задача №8

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

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

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

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

Целое.
0 7 8 9 10 16 D1 D2 D3 D4

Тесты:

>>> main({'D1': '0x59', 'D2': '0x0', 'D3': '0x0', 'D4': '0x65'})
103513

>>> main({'D1': '0xc3', 'D2': '0x0', 'D3': '0x0', 'D4': '0x6d'})
111811

>>> main({'D1': '0x7f', 'D2': '0x1', 'D3': '0x1', 'D4': '0x5a'})
93055

>>> main({'D1': '0x98', 'D2': '0x1', 'D3': '0x1', 'D4': '0x6a'})
109464

Вариант №39

Задача №8

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

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

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

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

Десятичная строка.
0 4 5 8 9 16 T1 T2 T3 17 21 22 25 26 33 T4 T5 T6

Тесты:

>>> main(('0x1e', '0x7', '0xb3', '0x11', '0x1', '0xa7'))
'11213694718'

>>> main(('0x1', '0x5', '0x70', '0xe', '0xc', '0x1'))
'119333025'

>>> main(('0x18', '0x5', '0xad', '0xf', '0x6', '0xe3'))
'15260932792'

>>> main(('0x1e', '0x0', '0x9e', '0x0', '0xc', '0xb7'))
'12331334686'

Вариант №40

Задача №8

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

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

Целое.

0 9 10 15 S1 16 18 19 21 22 31 S3 S4

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

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

0 8 9 15 S1 16 18 19 28 29 31 S1 S4 S3

Тесты:

>>> main(2231345310)
'4036574208'

>>> main(2675027409)
'3555435008'

>>> main(4031940329)
'1577964032'

>>> main(632436551)
'3300298240'