ИВБО-01-22

Вариант №1

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 5 11 12 15 T1 T2 T3 T4

Тесты:

>>> main(('1', '1', '55', '0'))
'0x6f1'

>>> main(('12', '1', '27', '2'))
'0x237c'

>>> main(('5', '0', '81', '13'))
'0xda25'

>>> main(('12', '0', '13', '2'))
'0x21ac'

Вариант №2

Задача №8

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

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

Целое.
0 6 7 9 10 11 13 F1 F2 F3

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

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

Тесты:

>>> main(405)
[('F1', 21), ('F2', 3), ('F3', 0)]

>>> main(1525)
[('F1', 117), ('F2', 3), ('F3', 1)]

>>> main(893)
[('F1', 125), ('F2', 6), ('F3', 0)]

>>> main(549)
[('F1', 37), ('F2', 4), ('F3', 0)]

Вариант №3

Задача №8

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

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

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

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

Целое.
0 1 5 6 12 13 22 L2 L3 L4

Тесты:

>>> main([('L2', '0x10'), ('L3', '0xa'), ('L4', '0x2f')])
385696

>>> main([('L2', '0x10'), ('L3', '0x5f'), ('L4', '0x1ac')])
3512288

>>> main([('L2', '0x2'), ('L3', '0x15'), ('L4', '0x305')])
6333764

>>> main([('L2', '0x15'), ('L3', '0x7'), ('L4', '0x397')])
7528938

Вариант №4

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 5 6 12 13 20 21 26 N1 N2 N3 N4 N5

Тесты:

>>> main(('0x2', '0x4', '0x19', '0x21', '0xd'))
'27534946'

>>> main(('0x3', '0x7', '0x71', '0x12', '0x27'))
'81943675'

>>> main(('0x7', '0x4', '0xe', '0xbe', '0x1d'))
'62374823'

>>> main(('0x0', '0x1', '0x1b', '0x67', '0x34'))
'109897416'

Вариант №5

Задача №8

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

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

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

0 4 5 10 11 20 21 22 J1 J2 J3

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

Целое.

0 9 10 15 16 20 21 22 J3 J2 J1

Тесты:

>>> main('821747')
1260945

>>> main('361091')
217264

>>> main('1660895')
2095914

>>> main('1033969')
1170936

Вариант №6

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 5 6 13 14 19 20 H1 H3 H4 21 23 24 33 34 41 H4 H5 H6

Тесты:

>>> main([('H1', '0x35'), ('H3', '0x2e'), ('H4', '0x2'), ('H5', '0x336'), ('H6', '0x62')])
'0x18b362b8035'

>>> main([('H1', '0x3e'), ('H3', '0x2e'), ('H4', '0x5'), ('H5', '0x3b'), ('H6', '0x4')])
'0x103b5b803e'

>>> main([('H1', '0xa'), ('H3', '0x20'), ('H4', '0x5'), ('H5', '0x367'), ('H6', '0xcd')])
'0x3376758000a'

>>> main([('H1', '0x12'), ('H3', '0x36'), ('H4', '0x8'), ('H5', '0xd9'), ('H6', '0xfd')])
'0x3f4d98d8012'

Вариант №7

Задача №8

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

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

Десятичная строка.
0 7 8 15 16 E1 E2 E3 17 18 19 20 29 30 33 E3 E5 E6

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

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

Тесты:

>>> main('12930800291')
('0xa3', '0x5a', '0x4', '0x2b', '0xc')

>>> main('5491355607')
('0xd7', '0x6f', '0x7', '0x74', '0x5')

>>> main('4385472263')
('0x7', '0xff', '0x4', '0x56', '0x4')

>>> main('8283508376')
('0x98', '0x4e', '0x4', '0x2db', '0x7')

Вариант №8

Задача №8

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

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

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

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

Десятичная строка.
0 7 8 15 16 20 21 27 28 M1 M2 M3 M5

Тесты:

>>> main({'M1': 169, 'M2': 202, 'M3': 25, 'M5': 1})
'270125737'

>>> main({'M1': 162, 'M2': 35, 'M3': 21, 'M5': 1})
'269820834'

>>> main({'M1': 241, 'M2': 129, 'M3': 8, 'M5': 0})
'557553'

>>> main({'M1': 30, 'M2': 36, 'M3': 8, 'M5': 1})
'268968990'

Вариант №9

Задача №8

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

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

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

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

Целое.
0 2 3 11 12 14 15 18 I1 I2 I3

Тесты:

>>> main((2, 117, 1))
5034

>>> main((3, 253, 7))
30699

>>> main((6, 337, 5))
23182

>>> main((5, 450, 5))
24085

Вариант №10

Задача №8

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

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

Десятичная строка.
0 5 6 9 10 18 19 20 Q1 Q2 Q3 Q4 21 26 27 32 33 41 Q4 Q5 Q6

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

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

Тесты:

>>> main('690842418230')
{'Q1': '54', 'Q2': '0', 'Q3': '175', 'Q4': '45', 'Q5': '27', 'Q6': '80'}

>>> main('95275629226')
{'Q1': '42', 'Q2': '10', 'Q3': '430', 'Q4': '219', 'Q5': '5', 'Q6': '11'}

>>> main('1663803078110')
{'Q1': '30', 'Q2': '7', 'Q3': '269', 'Q4': '76', 'Q5': '44', 'Q6': '193'}

>>> main('779977109898')
{'Q1': '10', 'Q2': '6', 'Q3': '140', 'Q4': '72', 'Q5': '51', 'Q6': '90'}

Вариант №11

Задача №8

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

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

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

0 2 3 4 10 11 16 17 22 I1 I2 I3 I4 I5

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

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

0 6 7 12 13 15 16 17 22 I3 I5 I1 I2 I4

Тесты:

>>> main('641066')
'7553538'

>>> main('4676504')
'5706169'

>>> main('4208178')
'807011'

>>> main('7292728')
'5315571'

Вариант №12

Задача №8

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

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

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

0 9 10 17 18 B2 B3 19 26 27 36 B3 B4

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

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

0 8 9 16 17 18 B3 B2 19 26 27 36 B4

Тесты:

>>> main('0x19129d602f')
'107642663079'

>>> main('0xebb6d7087')
'63216597211'

>>> main('0x14d2a70063')
'89389105321'

>>> main('0xf50217c7a')
'65766735368'

Вариант №13

Задача №8

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

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

Десятичная строка.
0 3 4 8 9 15 16 17 18 19 25 K1 K2 K3 K4 K5 K6

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

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

Тесты:

>>> main('9406431')
[('K1', 15), ('K2', 29), ('K3', 67), ('K4', 1), ('K5', 3), ('K6', 17)]

>>> main('58661559')
[('K1', 7), ('K2', 11), ('K3', 13), ('K4', 1), ('K5', 3), ('K6', 111)]

>>> main('15593628')
[('K1', 12), ('K2', 9), ('K3', 120), ('K4', 1), ('K5', 2), ('K6', 29)]

>>> main('53766688')
[('K1', 0), ('K2', 2), ('K3', 53), ('K4', 0), ('K5', 2), ('K6', 102)]

Вариант №14

Задача №8

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

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

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

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

Десятичная строка.
0 5 6 7 8 16 17 18 19 25 R1 R2 R3 R4 R5

Тесты:

>>> main({'R1': '0x22', 'R2': '0x1', 'R3': '0x170', 'R4': '0x3', 'R5': '0x11'})
'9400418'

>>> main({'R1': '0xa', 'R2': '0x0', 'R3': '0x1d3', 'R4': '0x1', 'R5': '0x2'})
'1299210'

>>> main({'R1': '0xe', 'R2': '0x0', 'R3': '0x38', 'R4': '0x0', 'R5': '0x2d'})
'23607310'

>>> main({'R1': '0x1f', 'R2': '0x0', 'R3': '0x10d', 'R4': '0x0', 'R5': '0x3a'})
'30477599'

Вариант №15

Задача №8

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

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

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

0 4 5 13 14 17 18 26 S1 S2 S3 S4

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

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

0 8 9 12 13 17 18 26 S4 S3 S1 S2

Тесты:

>>> main('0x12f9276')
'38722635'

>>> main('0x27fda49')
'55131807'

>>> main('0x6476ae1')
'89930641'

>>> main('0x13ddab1')
'55979599'

Вариант №16

Задача №8

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

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

Целое.

0 4 5 8 9 13 14 16 B1 B2 B3 B4 17 19 20 25 26 33 B4 B5 B6

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

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

0 7 8 13 14 16 B6 B5 B3 17 18 19 22 23 28 29 33 B3 B2 B4 B1

Тесты:

>>> main(16036659166)
'16508255726'

>>> main(16503233638)
'3600530165'

>>> main(8578499994)
'14015313279'

>>> main(16637434851)
'1987803895'

Вариант №17

Задача №8

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

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

Десятичная строка.
0 8 9 18 19 20 R1 R2 21 26 27 31 32 40 R4 R5

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

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

Тесты:

>>> main('1677022578475')
(299, 739, 14, 390)

>>> main('228977478305')
(161, 901, 10, 53)

>>> main('1995843470136')
(312, 321, 22, 464)

>>> main('1936189446509')
(365, 300, 25, 450)

Вариант №18

Задача №8

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

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

Шестнадцатиричная строка.
0 4 5 6 7 11 12 13 19 20 23 P1 P2 P3 P4 P6

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

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

Тесты:

>>> main('0x36482c')
{'P1': 12, 'P2': 1, 'P3': 16, 'P4': 0, 'P6': 3}

>>> main('0x67473b')
{'P1': 27, 'P2': 1, 'P3': 14, 'P4': 0, 'P6': 6}

>>> main('0x21c287')
{'P1': 7, 'P2': 0, 'P3': 5, 'P4': 0, 'P6': 2}

>>> main('0x41cae9')
{'P1': 9, 'P2': 3, 'P3': 21, 'P4': 0, 'P6': 4}

Вариант №19

Задача №8

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

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

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

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

Целое.
0 7 8 14 15 23 24 27 28 30 L1 L2 L4 L5

Тесты:

>>> main(('99', '0', '14', '7'))
2113929315

>>> main(('251', '103', '9', '2'))
687892475

>>> main(('134', '0', '8', '6'))
1744830598

>>> main(('45', '57', '4', '7'))
1946171693

Вариант №20

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 4 5 11 12 18 19 20 21 22 I2 I3 I4 I5

Тесты:

>>> main([('I2', 66), ('I3', 83), ('I4', 3), ('I5', 3)])
'0x7d3840'

>>> main([('I2', 47), ('I3', 23), ('I4', 0), ('I5', 2)])
'0x4175e0'

>>> main([('I2', 62), ('I3', 68), ('I4', 1), ('I5', 1)])
'0x2c47c0'

>>> main([('I2', 118), ('I3', 76), ('I4', 1), ('I5', 2)])
'0x4ccec0'

Вариант №21

Задача №8

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

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

Целое.

0 6 7 8 9 10 11 15 J1 J3 J4

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

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

0 4 5 11 12 13 14 15 J4 J1 J3

Тесты:

>>> main(59830)
'0x6dd'

>>> main(58985)
'0x3d3c'

>>> main(12599)
'0x6e6'

>>> main(42111)
'0x2ff4'

Вариант №22

Задача №8

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

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

Целое.
0 5 6 15 16 17 18 19 20 26 27 28 Z1 Z2 Z3 Z4 Z5 Z6

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

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

Тесты:

>>> main(523472915)
{'Z1': '19', 'Z2': '576', 'Z3': '3', 'Z4': '0', 'Z5': '115', 'Z6': '3'}

>>> main(413324867)
{'Z1': '3', 'Z2': '857', 'Z3': '2', 'Z4': '0', 'Z5': '10', 'Z6': '3'}

>>> main(21545107)
{'Z1': '19', 'Z2': '770', 'Z3': '0', 'Z4': '2', 'Z5': '20', 'Z6': '0'}

>>> main(521064890)
{'Z1': '58', 'Z2': '838', 'Z3': '2', 'Z4': '3', 'Z5': '112', 'Z6': '3'}

Вариант №23

Задача №8

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

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

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

0 5 6 7 14 15 16 X1 X2 X3 X4

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

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

0 7 8 9 10 11 16 X3 X4 X2 X1

Тесты:

>>> main('105697')
'0x10f39'

>>> main('69874')
'0x19621'

>>> main('54682')
'0xd1ab'

>>> main('4313')
'0xcc21'

Вариант №24

Задача №8

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

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

Десятичная строка.
0 1 2 8 9 12 13 16 17 22 23 24 O1 O2 O3 O4 O5 O6

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

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

Тесты:

>>> main('16951708')
('0', '103', '4', '5', '1', '2')

>>> main('11789960')
('0', '34', '3', '15', '25', '1')

>>> main('1292921')
('1', '30', '13', '13', '9', '0')

>>> main('7890383')
('3', '115', '2', '3', '60', '0')

Вариант №25

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 9 10 13 14 15 F1 F2 F3 F4 16 23 24 31 F4 F5

Тесты:

>>> main({'F1': '0x6', 'F2': '0x18', 'F3': '0xf', 'F4': '0x16a', 'F5': '0x3f'})
'1062911174'

>>> main({'F1': '0x0', 'F2': '0x30', 'F3': '0x9', 'F4': '0x106', 'F5': '0x20'})
'541173120'

>>> main({'F1': '0x4', 'F2': '0x5b', 'F3': '0x0', 'F4': '0x180', 'F5': '0xf3'})
'4083155676'

>>> main({'F1': '0x3', 'F2': '0x48', 'F3': '0xa', 'F4': '0xc3', 'F5': '0xef'})
'4012960323'

Вариант №26

Задача №8

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

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

Целое.

0 3 4 12 13 17 18 27 Z2 Z3 Z4

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

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

0 3 4 8 9 18 19 27 Z3 Z4 Z2

Тесты:

>>> main(217296186)
'0x69e79d0'

>>> main(252127140)
'0x3d78390'

>>> main(140703441)
'0xb6c3170'

>>> main(61727062)
'0xa9d6f0'

Вариант №27

Задача №8

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

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

Целое.

0 1 2 3 4 10 11 15 E1 E2 E3

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

Целое.

0 4 5 6 7 8 9 15 E2 E1 E3

Тесты:

>>> main(29)
736

>>> main(1257)
40128

>>> main(978)
31488

>>> main(1649)
52864

Вариант №28

Задача №8

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

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

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

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

Десятичная строка.
0 1 2 3 5 6 10 11 15 16 23 W1 W2 W3 W4 W5 W6

Тесты:

>>> main([('W1', '0'), ('W2', '1'), ('W3', '6'), ('W4', '13'), ('W5', '0'), ('W6', '202')])
'13239156'

>>> main([('W1', '2'), ('W2', '1'), ('W3', '5'), ('W4', '21'), ('W5', '5'), ('W6', '81')])
'5320046'

>>> main([('W1', '0'), ('W2', '0'), ('W3', '7'), ('W4', '15'), ('W5', '23'), ('W6', '152')])
'10009592'

>>> main([('W1', '3'), ('W2', '0'), ('W3', '4'), ('W4', '21'), ('W5', '5'), ('W6', '151')])
'9907555'

Вариант №29

Задача №8

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

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

Десятичная строка.
0 7 8 9 10 17 X1 X2 X3 18 19 20 28 29 34 X3 X5

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

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

Тесты:

>>> main('16992014227')
{'X1': '147', 'X2': '3', 'X3': '867', 'X5': '31'}

>>> main('6982593029')
{'X1': '5', 'X2': '2', 'X3': '122', 'X5': '13'}

>>> main('7217611166')
{'X1': '158', 'X2': '1', 'X3': '256', 'X5': '13'}

>>> main('3779238546')
{'X1': '146', 'X2': '2', 'X3': '166', 'X5': '7'}

Вариант №30

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 6 7 13 14 16 17 25 E1 E2 E3 E4

Тесты:

>>> main({'E1': 24, 'E2': 72, 'E3': 6, 'E4': 44})
'0x59a418'

>>> main({'E1': 121, 'E2': 19, 'E3': 7, 'E4': 287})
'0x23fc9f9'

>>> main({'E1': 49, 'E2': 75, 'E3': 0, 'E4': 386})
'0x30425b1'

>>> main({'E1': 57, 'E2': 64, 'E3': 7, 'E4': 376})
'0x2f1e039'

Вариант №31

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 4 5 11 12 13 16 U1 U2 U3 U4

Тесты:

>>> main(('0x13', '0x65', '0x1', '0xb'))
'0x17cb3'

>>> main(('0x19', '0x1e', '0x0', '0x1'))
'0x23d9'

>>> main(('0x19', '0x75', '0x1', '0xb'))
'0x17eb9'

>>> main(('0x13', '0x27', '0x1', '0x8'))
'0x114f3'

Вариант №32

Задача №8

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

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

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

0 1 7 8 15 16 22 C1 C2 C3 C4

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

Целое.

0 7 8 14 15 16 22 C3 C2 C1 C4

Тесты:

>>> main('4801108')
4794946

>>> main('6863999')
6864828

>>> main('5015222')
5004166

>>> main('6598734')
6563760

Вариант №33

Задача №8

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

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

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

0 7 8 17 18 20 21 C1 C2 C3 C4

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

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

0 2 3 4 11 12 21 C3 C4 C1 C2

Тесты:

>>> main('0x3b9565')
'0x39565e'

>>> main('0x1ea1a9')
'0x2a1a97'

>>> main('0x8b4b7')
'0xb4b72'

>>> main('0x2d46ce')
'0x146ceb'

Вариант №34

Задача №8

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

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

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

0 4 5 11 12 18 19 25 E1 E2 E3 E4

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

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

0 6 7 13 14 18 19 25 E3 E4 E1 E2

Тесты:

>>> main('0x350100d')
'0x37501'

>>> main('0x29519d5')
'0x2756951'

>>> main('0x2eaa0a5')
'0x296eaa'

>>> main('0x3fdfa58')
'0x2963fdf'

Вариант №35

Задача №8

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

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

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

0 4 5 13 14 16 F1 F2 F3 17 23 24 32 F3 F4

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

Целое.

0 8 9 16 F2 F3 17 18 19 23 24 32 F3 F1 F4

Тесты:

>>> main('0x1be167ea6')
7485830133

>>> main('0x6b332f56')
1806801274

>>> main('0x137b78cfe')
5233818727

>>> main('0x8e018ae6')
2385513559

Вариант №36

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 4 5 10 11 17 A1 A2 A3 A4 18 19 26 27 35 A4 A5 A6

Тесты:

>>> main([('A1', '3'), ('A2', '0'), ('A3', '42'), ('A4', '134'), ('A5', '10'), ('A6', '274')])
'36781176131'

>>> main([('A1', '6'), ('A2', '3'), ('A3', '27'), ('A4', '29'), ('A5', '59'), ('A6', '391')])
'52510124926'

>>> main([('A1', '4'), ('A2', '2'), ('A3', '0'), ('A4', '85'), ('A5', '176'), ('A6', '50')])
'6803335188'

>>> main([('A1', '7'), ('A2', '0'), ('A3', '16'), ('A4', '248'), ('A5', '180'), ('A6', '325')])
'43715641863'

Вариант №37

Задача №8

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

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

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

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

Десятичная строка.
0 4 5 9 10 16 17 19 20 21 X1 X2 X4 X5

Тесты:

>>> main([('X1', 26), ('X2', 25), ('X4', 3), ('X5', 3)])
'3539770'

>>> main([('X1', 14), ('X2', 14), ('X4', 3), ('X5', 0)])
'393678'

>>> main([('X1', 2), ('X2', 14), ('X4', 5), ('X5', 3)])
'3801538'

>>> main([('X1', 13), ('X2', 11), ('X4', 3), ('X5', 2)])
'2490733'

Вариант №38

Задача №8

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

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

Десятичная строка.
0 5 6 13 14 20 21 22 23 28 O1 O2 O3 O4 O5

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

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

Тесты:

>>> main('467549311')
('0x3f', '0xf1', '0x78', '0x2', '0x37')

>>> main('307328678')
('0x26', '0xda', '0x45', '0x2', '0x24')

>>> main('341469800')
('0x28', '0xa9', '0x69', '0x2', '0x28')

>>> main('262505259')
('0x2b', '0xc', '0x16', '0x1', '0x1f')

Вариант №39

Задача №8

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

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

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

0 7 8 9 13 14 15 16 17 21 X1 X2 X3 X4 X5 X6

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

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

0 7 8 12 13 14 15 16 20 21 X1 X3 X4 X2 X6 X5

Тесты:

>>> main('0x11423c')
'0x28213c'

>>> main('0x37ccff')
'0x3b66ff'

>>> main('0x1e0a97')
'0xf0597'

>>> main('0x1d9d4')
'0x20ecd4'

Вариант №40

Задача №8

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

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

Десятичная строка.
0 9 10 19 20 R1 R2 R3 21 27 28 31 32 41 R3 R4

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

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

Тесты:

>>> main('3458204613')
('965', '0', '226', '12')

>>> main('1519143048')
('136', '786', '168', '5')

>>> main('3610959288')
('440', '695', '115', '13')

>>> main('2985375255')
('535', '77', '31', '11')