ИНБО-04-22

Вариант №1

Задача №8

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

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

Целое.
0 9 10 15 16 X1 X3 17 24 25 28 29 31 32 X3 X4 X5 X6

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

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

Тесты:

>>> main(3515327054)
('590', '391', '8', '6', '0')

>>> main(351044382)
('798', '236', '10', '0', '0')

>>> main(2781424052)
('436', '457', '2', '5', '0')

>>> main(602237094)
('166', '485', '1', '1', '0')

Вариант №2

Задача №8

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

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

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

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

Десятичная строка.
0 1 2 9 10 14 15 17 18 22 23 28 Z1 Z2 Z3 Z4 Z5 Z6

Тесты:

>>> main({'Z1': '3', 'Z2': '69', 'Z3': '14', 'Z4': '2', 'Z5': '10', 'Z6': '9'})
'78199063'

>>> main({'Z1': '0', 'Z2': '108', 'Z3': '24', 'Z4': '0', 'Z5': '12', 'Z6': '12'})
'103834032'

>>> main({'Z1': '0', 'Z2': '66', 'Z3': '23', 'Z4': '6', 'Z5': '18', 'Z6': '22'})
'189488392'

>>> main({'Z1': '2', 'Z2': '75', 'Z3': '5', 'Z4': '2', 'Z5': '28', 'Z6': '34'})
'292623662'

Вариант №3

Задача №8

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

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

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

0 4 5 6 7 9 10 11 12 20 21 27 K1 K2 K3 K4 K5 K6

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

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

0 1 2 10 11 15 16 22 23 24 25 27 K2 K5 K1 K6 K4 K3

Тесты:

>>> main('128244655')
'0xf3d7935'

>>> main('192543766')
'0x1dbb67c'

>>> main('92806381')
'0x3ac6a07'

>>> main('81144163')
'0x5261d8b'

Вариант №4

Задача №8

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

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

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

0 1 2 4 5 11 12 19 A1 A2 A3 A4 20 21 28 29 38 A4 A5 A6

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

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

0 9 10 18 19 A6 A4 A1 20 21 27 28 35 36 38 A1 A3 A5 A2

Тесты:

>>> main('411195068344')
'475124511485'

>>> main('542027655988')
'385123576817'

>>> main('263684720077')
'216456323563'

>>> main('8705403255')
'358520223760'

Вариант №5

Задача №8

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

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

Десятичная строка.
0 9 10 11 12 13 16 17 23 K1 K2 K3 K4 K5

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

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

Тесты:

>>> main('15781147')
(283, 3, 0, 6, 120)

>>> main('4546279')
(743, 3, 1, 10, 34)

>>> main('9477199')
(79, 3, 1, 4, 72)

>>> main('4221232')
(304, 2, 0, 3, 32)

Вариант №6

Задача №8

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

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

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

0 9 10 11 15 16 21 22 25 26 A1 A2 A3 A4 A5

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

Целое.

0 9 10 15 16 17 18 22 23 26 A1 A4 A2 A3 A5

Тесты:

>>> main('0x38d5ad4')
120338132

>>> main('0x354a2b4')
114315956

>>> main('0x23baeba')
72740538

>>> main('0x3754f98')
111531928

Вариант №7

Задача №8

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

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

Шестнадцатиричная строка.
0 9 10 14 15 17 P1 P2 18 22 23 29 30 34 P4 P5

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

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

Тесты:

>>> main('0x7aa9994ff')
{'P1': 255, 'P2': 5, 'P4': 85, 'P5': 30}

>>> main('0x38e8c8042')
{'P1': 66, 'P2': 0, 'P4': 29, 'P5': 14}

>>> main('0x4ab12276a')
{'P1': 874, 'P2': 9, 'P4': 86, 'P5': 18}

>>> main('0x3d3942dcd')
{'P1': 461, 'P2': 11, 'P4': 39, 'P5': 15}

Вариант №8

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 14 15 19 20 21 22 30 B1 B2 B3 B4 B5

Тесты:

>>> main({'B1': '15', 'B2': '47', 'B3': '28', 'B4': '2', 'B5': '137'})
'577640335'

>>> main({'B1': '120', 'B2': '53', 'B3': '30', 'B4': '1', 'B5': '421'})
'1767840504'

>>> main({'B1': '98', 'B2': '84', 'B3': '5', 'B4': '0', 'B5': '96'})
'402827874'

>>> main({'B1': '17', 'B2': '128', 'B3': '2', 'B4': '0', 'B5': '105'})
'440483857'

Вариант №9

Задача №8

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

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

Целое.
0 1 2 5 6 9 10 12 F1 F2 F3 F4

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

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

Тесты:

>>> main(575)
('0x3', '0xf', '0x8', '0x0')

>>> main(3256)
('0x0', '0xe', '0x2', '0x3')

>>> main(4572)
('0x0', '0x7', '0x7', '0x4')

>>> main(1969)
('0x1', '0xc', '0xe', '0x1')

Вариант №10

Задача №8

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

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

Шестнадцатиричная строка.
0 6 7 16 17 21 A1 A2 A3 22 24 25 34 35 42 A3 A4 A5

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

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

Тесты:

>>> main('0x27450dc3bb')
[('A1', '59'), ('A2', '903'), ('A3', '134'), ('A4', '930'), ('A5', '4')]

>>> main('0x4bb86bcac57')
[('A1', '87'), ('A2', '344'), ('A3', '94'), ('A4', '451'), ('A5', '151')]

>>> main('0x61149b1f802')
[('A1', '2'), ('A2', '1008'), ('A3', '216'), ('A4', '164'), ('A5', '194')]

>>> main('0x6564a890b46')
[('A1', '70'), ('A2', '534'), ('A3', '68'), ('A4', '805'), ('A5', '202')]

Вариант №11

Задача №8

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

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

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

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

Целое.
0 5 6 12 13 22 23 O1 O2 O3 O4

Тесты:

>>> main([('O1', '38'), ('O2', '57'), ('O3', '396'), ('O4', '0')])
3247718

>>> main([('O1', '16'), ('O2', '75'), ('O3', '980'), ('O4', '0')])
8032976

>>> main([('O1', '44'), ('O2', '18'), ('O3', '751'), ('O4', '1')])
14541996

>>> main([('O1', '22'), ('O2', '4'), ('O3', '524'), ('O4', '0')])
4292886

Вариант №12

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 6 7 15 16 21 22 28 R1 R2 R4

Тесты:

>>> main({'R1': '0x1f', 'R2': '0x8a', 'R4': '0xa'})
'0x280451f'

>>> main({'R1': '0x1d', 'R2': '0x20', 'R4': '0x78'})
'0x1e00101d'

>>> main({'R1': '0x18', 'R2': '0x92', 'R4': '0x31'})
'0xc404918'

>>> main({'R1': '0x3c', 'R2': '0x1ca', 'R4': '0x5b'})
'0x16c0e53c'

Вариант №13

Задача №8

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

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

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

0 2 3 4 9 10 15 M1 M2 M3 M4

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

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

0 5 6 7 9 10 15 M3 M2 M1 M4

Тесты:

>>> main('63581')
'0xfac5'

>>> main('31544')
'0x7873'

>>> main('52321')
'0xcc86'

>>> main('46136')
'0xb443'

Вариант №14

Задача №8

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

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

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

0 2 3 5 6 7 11 12 19 20 26 Z1 Z2 Z3 Z4 Z5 Z6

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

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

0 2 3 4 10 11 18 19 23 24 26 Z1 Z3 Z6 Z5 Z4 Z2

Тесты:

>>> main('0x290393')
'0x23c8023'

>>> main('0x57b6ac3')
'0xadb57b'

>>> main('0x11f82d4')
'0x22fc11c'

>>> main('0x541ff0b')
'0x1f0fd43'

Вариант №15

Задача №8

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

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

Целое.

0 3 4 6 7 8 9 15 J1 J2 J4

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

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

0 6 7 10 11 12 13 15 J4 J1 J2

Тесты:

>>> main(24455)
'943'

>>> main(48597)
'41694'

>>> main(61594)
'9592'

>>> main(48482)
'49502'

Вариант №16

Задача №8

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

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

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

0 8 9 11 12 21 22 27 A2 A3 A4

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

Целое.

0 8 9 14 15 17 18 27 A4 A2 A3

Тесты:

>>> main('0xdc5e8e9')
24800768

>>> main('0x6f581e3')
224409088

>>> main('0xc8edca4')
62350336

>>> main('0x6cf2621')
63550976

Вариант №17

Задача №8

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

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

Целое.
0 1 2 4 5 13 14 21 X1 X2 X3 X4

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

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

Тесты:

>>> main(2060407)
[('X1', 3), ('X2', 5), ('X3', 387), ('X4', 125)]

>>> main(1436339)
[('X1', 3), ('X2', 4), ('X3', 341), ('X4', 87)]

>>> main(2394707)
[('X1', 3), ('X2', 4), ('X3', 82), ('X4', 146)]

>>> main(3381669)
[('X1', 1), ('X2', 1), ('X3', 205), ('X4', 206)]

Вариант №18

Задача №8

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

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

Шестнадцатиричная строка.
0 1 4 5 6 7 16 17 19 G1 G2 G3 G4 G5

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

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

Тесты:

>>> main('0x33920')
{'G1': '0', 'G2': '0', 'G3': '1', 'G4': '626', 'G5': '1'}

>>> main('0xcfd81')
{'G1': '1', 'G2': '0', 'G3': '0', 'G4': '507', 'G5': '6'}

>>> main('0xceb25')
{'G1': '1', 'G2': '2', 'G3': '1', 'G4': '470', 'G5': '6'}

>>> main('0x85b6b')
{'G1': '1', 'G2': '5', 'G3': '3', 'G4': '182', 'G5': '4'}

Вариант №19

Задача №8

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

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

Целое.

0 7 8 13 14 21 22 23 24 26 27 28 M1 M2 M3 M4 M5 M6

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

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

0 7 8 13 14 15 16 17 18 20 21 28 M1 M2 M6 M4 M5 M3

Тесты:

>>> main(409145407)
'0x1181d03f'

>>> main(91560324)
'0x1a951984'

>>> main(494588336)
'0x1d75d1b0'

>>> main(27943614)
'0x152622be'

Вариант №20

Задача №8

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

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

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

0 7 8 15 16 23 U1 U2 U3 24 25 26 34 35 39 40 46 U3 U4 U5 U6

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

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

0 4 5 11 12 19 20 23 U5 U6 U2 U1 24 27 28 37 38 46 U1 U3 U4

Тесты:

>>> main('0x27dcc7814578')
'0x4c78178454fb'

>>> main('0x1e70cd340139')
'0xcd3439013ce'

>>> main('0x2e29f04311c9')
'0x1f043c9115c5'

>>> main('0x711605566631')
'0x605563166e22'

Вариант №21

Задача №8

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

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

Целое.

0 5 6 8 9 10 11 12 21 S1 S2 S3 S5

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

Целое.

0 1 2 3 5 6 11 12 21 S3 S2 S1 S5

Тесты:

>>> main(2224199)
2224584

>>> main(1293560)
1293848

>>> main(2878796)
2876200

>>> main(2985269)
2985312

Вариант №22

Задача №8

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

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

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

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

Целое.
0 8 9 12 13 17 18 19 23 24 28 P1 P2 P3 P4 P5 P6

Тесты:

>>> main((425, 5, 20, 1, 6, 8))
137792425

>>> main((151, 13, 3, 1, 29, 24))
418151063

>>> main((116, 0, 30, 1, 15, 16))
276807796

>>> main((123, 10, 27, 1, 4, 1))
19362939

Вариант №23

Задача №8

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

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

Целое.

0 1 2 3 9 10 V1 V2 V3 V4

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

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

0 1 2 3 9 10 V2 V1 V3 V4

Тесты:

>>> main(337)
'340'

>>> main(1251)
'1253'

>>> main(2040)
'2040'

>>> main(1709)
'1710'

Вариант №24

Задача №8

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

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

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

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

Десятичная строка.
0 4 5 6 7 8 11 G1 G2 G3 G4

Тесты:

>>> main([('G1', '0x1d'), ('G2', '0x0'), ('G3', '0x2'), ('G4', '0x1')])
'413'

>>> main([('G1', '0x6'), ('G2', '0x0'), ('G3', '0x3'), ('G4', '0xd')])
'3526'

>>> main([('G1', '0x9'), ('G2', '0x1'), ('G3', '0x3'), ('G4', '0x6')])
'1769'

>>> main([('G1', '0x1d'), ('G2', '0x1'), ('G3', '0x1'), ('G4', '0x6')])
'1661'

Вариант №25

Задача №8

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

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

Шестнадцатиричная строка.
0 2 3 7 8 9 10 11 19 J1 J2 J3 J4 J5

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

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

Тесты:

>>> main('0x6edcd')
{'J1': '5', 'J2': '25', 'J3': '1', 'J4': '1', 'J5': '221'}

>>> main('0x6759c')
{'J1': '4', 'J2': '19', 'J3': '1', 'J4': '1', 'J5': '206'}

>>> main('0x8df5')
{'J1': '5', 'J2': '30', 'J3': '1', 'J4': '1', 'J5': '17'}

>>> main('0x37f1a')
{'J1': '2', 'J2': '3', 'J3': '3', 'J4': '1', 'J5': '111'}

Вариант №26

Задача №8

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

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

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

0 8 9 15 16 A1 A2 A3 17 22 23 25 26 32 A3 A4 A5

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

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

0 8 9 15 16 A1 A3 A4 17 18 19 25 26 32 A4 A5 A2

Тесты:

>>> main('2396194882')
'287155778'

>>> main('1322469171')
'2359142195'

>>> main('2525808514')
'6663510402'

>>> main('7655963709')
'6368045117'

Вариант №27

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 11 12 13 19 20 22 R1 R3 R4 R5

Тесты:

>>> main({'R1': '0x2', 'R3': '0x0', 'R4': '0x65', 'R5': '0x6'})
'7118850'

>>> main({'R1': '0x4', 'R3': '0x0', 'R4': '0x52', 'R5': '0x4'})
'4866052'

>>> main({'R1': '0x2', 'R3': '0x0', 'R4': '0x4d', 'R5': '0x0'})
'630786'

>>> main({'R1': '0x3', 'R3': '0x1', 'R4': '0x11', 'R5': '0x1'})
'1191939'

Вариант №28

Задача №8

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

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

Целое.

0 5 6 9 10 13 14 22 23 U2 U3 U4 U5

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

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

0 3 4 9 10 13 14 15 23 U3 U2 U5 U4

Тесты:

>>> main(4165402)
'0x7f3003'

>>> main(10524781)
'0x414406'

>>> main(10410361)
'0x3dd406'

>>> main(15392552)
'0xd5f007'

Вариант №29

Задача №8

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

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

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

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

Целое.
0 5 6 10 11 14 15 16 W1 W2 W4 17 22 23 26 27 33 W4 W5 W6

Тесты:

>>> main([('W1', 20), ('W2', 24), ('W4', 126), ('W5', 14), ('W6', 19)])
2671707668

>>> main([('W1', 43), ('W2', 2), ('W4', 43), ('W5', 14), ('W6', 22)])
3071639723

>>> main([('W1', 40), ('W2', 1), ('W4', 178), ('W5', 15), ('W6', 118)])
15969353832

>>> main([('W1', 15), ('W2', 24), ('W4', 58), ('W5', 14), ('W6', 50)])
6830229007

Вариант №30

Задача №8

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

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

Целое.

0 1 2 11 12 21 22 30 W1 W2 W3

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

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

0 1 2 11 12 20 21 30 W1 W3 W2

Тесты:

>>> main(160255)
'266338463'

>>> main(3463466)
'1228934454'

>>> main(2429552)
'327158084'

>>> main(26472)
'994050072'

Вариант №31

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 12 13 22 23 24 25 30 C1 C2 C3 C4

Тесты:

>>> main(('1', '19', '885', '3'))
'0x1eea131'

>>> main(('6', '27', '30', '1'))
'0x83c1b6'

>>> main(('0', '48', '583', '2'))
'0x148e300'

>>> main(('2', '65', '732', '2'))
'0x15b8412'

Вариант №32

Задача №8

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

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

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

0 1 10 11 14 15 23 A1 A3 A4

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

Целое.

0 8 9 18 19 22 23 A4 A3 A1

Тесты:

>>> main('0xc64733')
12583308

>>> main('0xf08f85')
8913377

>>> main('0x54f9d8')
7864489

>>> main('0x464f3c')
4718732

Вариант №33

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 11 12 15 16 21 22 23 D1 D2 D3 D4 D5

Тесты:

>>> main({'D1': '0x1e', 'D2': '0x14', 'D3': '0x7', 'D4': '0x3', 'D5': '0x2'})
'8616478'

>>> main({'D1': '0x5b', 'D2': '0x7', 'D3': '0x8', 'D4': '0xf', 'D5': '0x0'})
'1016795'

>>> main({'D1': '0x26', 'D2': '0x3', 'D3': '0x5', 'D4': '0x28', 'D5': '0x2'})
'11030950'

>>> main({'D1': '0x49', 'D2': '0x17', 'D3': '0x5', 'D4': '0x25', 'D5': '0x2'})
'10836937'

Вариант №34

Задача №8

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

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

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

0 4 5 12 13 15 16 17 I1 I2 I3 I4

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

Целое.

0 4 5 6 7 14 15 17 I1 I4 I2 I3

Тесты:

>>> main('228291')
126819

>>> main('153929')
91465

>>> main('6490')
25882

>>> main('81826')
65186

Вариант №35

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 4 5 8 9 10 F1 F2 F3

Тесты:

>>> main(('0', '15', '0'))
'0x1e0'

>>> main(('29', '8', '1'))
'0x31d'

>>> main(('17', '6', '0'))
'0xd1'

>>> main(('21', '0', '0'))
'0x15'

Вариант №36

Задача №8

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

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

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

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

Целое.
0 6 7 14 15 18 19 20 24 N1 N2 N3 N4 N5

Тесты:

>>> main((123, 43, 5, 0, 29))
30578171

>>> main((50, 41, 9, 1, 13))
14455986

>>> main((43, 234, 8, 1, 6))
7107883

>>> main((99, 1, 6, 0, 13))
13828323

Вариант №37

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 8 9 18 19 20 Y1 Y2 Y3 21 27 28 35 36 40 Y3 Y4 Y5

Тесты:

>>> main(('0x112', '0x388', '0x8a', '0xc4', '0xb'))
'0xbc44571112'

>>> main(('0x2d', '0x77', '0x7f', '0xd8', '0x13'))
'0x13d83f8ee2d'

>>> main(('0x35', '0x12a', '0x16', '0x6b', '0x2'))
'0x26b0b25435'

>>> main(('0x128', '0xd3', '0x167', '0xb', '0xa'))
'0xa0bb39a728'

Вариант №38

Задача №8

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

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

Целое.
0 2 3 9 10 19 20 24 F1 F2 F3

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

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

Тесты:

>>> main(366586)
{'F1': 2, 'F2': 127, 'F3': 357}

>>> main(76581)
{'F1': 5, 'F2': 100, 'F3': 74}

>>> main(834855)
{'F1': 7, 'F2': 36, 'F3': 815}

>>> main(332015)
{'F1': 7, 'F2': 29, 'F3': 324}

Вариант №39

Задача №8

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

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

Десятичная строка.
0 4 5 10 11 12 13 19 20 21 U2 U3 U4 U5

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

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

Тесты:

>>> main('1748471')
[('U2', '47'), ('U3', '1'), ('U4', '85'), ('U5', '1')]

>>> main('1192728')
[('U2', '24'), ('U3', '2'), ('U4', '17'), ('U5', '1')]

>>> main('1084446')
[('U2', '32'), ('U3', '1'), ('U4', '4'), ('U5', '1')]

>>> main('3600945')
[('U2', '17'), ('U3', '2'), ('U4', '55'), ('U5', '3')]

Вариант №40

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 16 17 18 21 Y1 Y2 Y3 Y4 22 27 28 35 36 43 Y4 Y5 Y6

Тесты:

>>> main({'Y1': 64, 'Y2': 853, 'Y3': 1, 'Y4': 240, 'Y5': 70, 'Y6': 91})
'6272326019776'

>>> main({'Y1': 86, 'Y2': 244, 'Y3': 0, 'Y4': 967, 'Y5': 153, 'Y6': 130})
'8974856125014'

>>> main({'Y1': 85, 'Y2': 538, 'Y3': 0, 'Y4': 837, 'Y5': 141, 'Y6': 167})
'11514221497685'

>>> main({'Y1': 102, 'Y2': 327, 'Y3': 0, 'Y4': 163, 'Y5': 224, 'Y6': 240})
'16552846730214'