ИКБО-18-22

Вариант №1

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 8 9 16 17 21 22 28 R1 R2 R3 R4 R5

Тесты:

>>> main(('5', '4', '65', '4', '103'))
'0x19c88245'

>>> main(('10', '10', '149', '26', '17'))
'0x4752aaa'

>>> main(('13', '22', '171', '5', '69'))
'0x114b576d'

>>> main(('15', '6', '27', '20', '87'))
'0x15e8366f'

Вариант №2

Задача №8

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

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

Десятичная строка.
0 3 4 13 14 22 23 S1 S2 S3

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

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

Тесты:

>>> main('7644893')
('0xd', '0x26d', '0x1d2')

>>> main('3713935')
('0xf', '0x2b8', '0xe2')

>>> main('6646207')
('0xf', '0x29b', '0x195')

>>> main('7654743')
('0x7', '0xd5', '0x1d3')

Вариант №3

Задача №8

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

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

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

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

Десятичная строка.
0 2 3 6 7 12 13 14 15 16 24 R2 R3 R4 R5 R6

Тесты:

>>> main(('2', '46', '3', '1', '473'))
'31061776'

>>> main(('5', '39', '2', '0', '116'))
'7623592'

>>> main(('2', '42', '0', '1', '377'))
'24745232'

>>> main(('1', '17', '1', '1', '424'))
'27830408'

Вариант №4

Задача №8

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

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

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

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

Целое.
0 7 8 17 18 22 23 28 29 30 C1 C2 C3 C4 C5 C6

Тесты:

>>> main([('C1', 215), ('C2', 677), ('C3', 29), ('C4', 20), ('C5', 1), ('C6', 1)])
1786160599

>>> main([('C1', 56), ('C2', 120), ('C3', 26), ('C4', 33), ('C5', 0), ('C6', 1)])
1357412408

>>> main([('C1', 223), ('C2', 654), ('C3', 4), ('C4', 35), ('C5', 1), ('C6', 1)])
1905430239

>>> main([('C1', 1), ('C2', 820), ('C3', 30), ('C4', 5), ('C5', 0), ('C6', 0)])
50017281

Вариант №5

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 16 17 26 27 I1 I3 I4

Тесты:

>>> main({'I1': '27', 'I3': '189', 'I4': '1'})
'158990363'

>>> main({'I1': '58', 'I3': '325', 'I4': '0'})
'42598458'

>>> main({'I1': '112', 'I3': '926', 'I4': '1'})
'255590512'

>>> main({'I1': '112', 'I3': '971', 'I4': '1'})
'261488752'

Вариант №6

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 15 16 20 H1 H2 H3 21 25 26 30 31 32 33 41 H3 H4 H6

Тесты:

>>> main([('H1', 499), ('H2', 26), ('H3', 713), ('H4', 5), ('H6', 324)])
'2783521106419'

>>> main([('H1', 276), ('H2', 12), ('H3', 348), ('H4', 18), ('H6', 13)])
'112899928340'

>>> main([('H1', 815), ('H2', 45), ('H3', 453), ('H4', 18), ('H6', 5)])
'44187367215'

>>> main([('H1', 619), ('H2', 17), ('H3', 208), ('H4', 12), ('H6', 80)])
'688013723243'

Вариант №7

Задача №8

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

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

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

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

Десятичная строка.
0 7 8 16 17 K1 K3 18 19 20 21 30 31 34 K3 K4 K5 K6

Тесты:

>>> main([('K1', '37'), ('K3', '3'), ('K4', '2'), ('K5', '81'), ('K6', '8')])
'17351180325'

>>> main([('K1', '180'), ('K3', '2'), ('K4', '3'), ('K5', '155'), ('K6', '13')])
'28244181172'

>>> main([('K1', '109'), ('K3', '3'), ('K4', '1'), ('K5', '645'), ('K6', '0')])
'1353580653'

>>> main([('K1', '120'), ('K3', '2'), ('K4', '3'), ('K5', '278'), ('K6', '4')])
'9174777976'

Вариант №8

Задача №8

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

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

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

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

Целое.
0 3 4 12 13 15 Y1 Y3 16 21 22 31 Y3 Y4

Тесты:

>>> main({'Y1': '11', 'Y3': '216', 'Y4': '845'})
3545956363

>>> main({'Y1': '13', 'Y3': '152', 'Y4': '1023'})
4292018189

>>> main({'Y1': '0', 'Y3': '140', 'Y4': '491'})
2060550144

>>> main({'Y1': '4', 'Y3': '363', 'Y4': '671'})
2817351684

Вариант №9

Задача №8

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

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

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

0 9 10 19 20 21 24 M2 M3 M4

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

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

0 3 4 5 14 15 24 M4 M3 M2

Тесты:

>>> main('28850638')
'16861'

>>> main('699127')
'21824'

>>> main('22130628')
'3450'

>>> main('27147539')
'29180'

Вариант №10

Задача №8

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

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

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

0 2 3 8 9 11 12 18 D1 D2 D3 D4

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

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

0 6 7 12 13 15 16 18 D4 D2 D3 D1

Тесты:

>>> main('425420')
'318695'

>>> main('286842')
'133062'

>>> main('88316')
'298901'

>>> main('375724')
'309979'

Вариант №11

Задача №8

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

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

Целое.
0 2 3 7 8 9 10 11 13 B1 B2 B3 B4 B5

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

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

Тесты:

>>> main(9095)
{'B1': '0x7', 'B2': '0x10', 'B3': '0x3', 'B4': '0x0', 'B5': '0x4'}

>>> main(121)
{'B1': '0x1', 'B2': '0xf', 'B3': '0x0', 'B4': '0x0', 'B5': '0x0'}

>>> main(6415)
{'B1': '0x7', 'B2': '0x1', 'B3': '0x1', 'B4': '0x0', 'B5': '0x3'}

>>> main(15574)
{'B1': '0x6', 'B2': '0x1a', 'B3': '0x0', 'B4': '0x1', 'B5': '0x7'}

Вариант №12

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 1 5 6 7 12 D1 D2 D3 D4

Тесты:

>>> main([('D1', '0x0'), ('D2', '0x17'), ('D3', '0x1'), ('D4', '0x5')])
'0x2ee'

>>> main([('D1', '0x0'), ('D2', '0x9'), ('D3', '0x1'), ('D4', '0x0')])
'0x52'

>>> main([('D1', '0x1'), ('D2', '0x1f'), ('D3', '0x0'), ('D4', '0x9')])
'0x4bf'

>>> main([('D1', '0x1'), ('D2', '0x1f'), ('D3', '0x1'), ('D4', '0x24')])
'0x127f'

Вариант №13

Задача №8

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

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

Целое.

0 4 5 7 8 13 14 21 22 27 A1 A2 A4 A5

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

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

0 7 8 13 14 19 20 22 23 27 A4 A5 A2 A1

Тесты:

>>> main(157171896)
'206579065'

>>> main(29764033)
'14681880'

>>> main(109795425)
'11541037'

>>> main(94826125)
'113251995'

Вариант №14

Задача №8

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

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

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

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

Целое.
0 7 8 14 15 18 K1 K2 K3 19 22 23 24 27 28 36 K3 K4 K5 K6

Тесты:

>>> main([('K1', '0x49'), ('K2', '0x5d'), ('K3', '0xc4'), ('K4', '0x1'), ('K5', '0x6'), ('K6', '0x178')])
101047229769

>>> main([('K1', '0xca'), ('K2', '0x77'), ('K3', '0x93'), ('K4', '0x1'), ('K5', '0x4'), ('K6', '0x1af')])
115776026570

>>> main([('K1', '0xbf'), ('K2', '0x34'), ('K3', '0x6d'), ('K4', '0x1'), ('K5', '0xe'), ('K6', '0x10e')])
72724427967

>>> main([('K1', '0x48'), ('K2', '0x71'), ('K3', '0xee'), ('K4', '0x1'), ('K5', '0xf'), ('K6', '0x19e')])
111400153416

Вариант №15

Задача №8

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

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

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

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

Целое.
0 7 8 11 12 21 22 D1 D2 D3 D4

Тесты:

>>> main([('D1', '6'), ('D2', '1'), ('D3', '882'), ('D4', '1')])
7807238

>>> main([('D1', '99'), ('D2', '15'), ('D3', '1016'), ('D4', '0')])
4165475

>>> main([('D1', '195'), ('D2', '9'), ('D3', '861'), ('D4', '0')])
3529155

>>> main([('D1', '29'), ('D2', '7'), ('D3', '864'), ('D4', '1')])
7735069

Вариант №16

Задача №8

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

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

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

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

Десятичная строка.
0 1 9 10 18 19 24 I1 I2 I3 I4

Тесты:

>>> main({'I1': '1', 'I2': '147', 'I3': '97', 'I4': '19'})
'10061095'

>>> main({'I1': '1', 'I2': '69', 'I3': '82', 'I4': '17'})
'8997003'

>>> main({'I1': '1', 'I2': '298', 'I3': '335', 'I4': '15'})
'8207957'

>>> main({'I1': '0', 'I2': '252', 'I3': '386', 'I4': '29'})
'15600120'

Вариант №17

Задача №8

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

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

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

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

Целое.
0 4 5 11 12 15 16 17 24 25 28 S1 S2 S3 S5 S6

Тесты:

>>> main({'S1': '5', 'S2': '37', 'S3': '8', 'S5': '2', 'S6': '3'})
100959397

>>> main({'S1': '13', 'S2': '113', 'S3': '2', 'S5': '97', 'S6': '8'})
281161261

>>> main({'S1': '23', 'S2': '98', 'S3': '15', 'S5': '60', 'S6': '9'})
309918807

>>> main({'S1': '4', 'S2': '26', 'S3': '2', 'S5': '202', 'S6': '8'})
294921028

Вариант №18

Задача №8

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

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

Десятичная строка.
0 6 7 10 11 12 13 18 19 24 N1 N2 N3 N4 N5

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

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

Тесты:

>>> main('26812493')
('77', '0', '0', '9', '51')

>>> main('9068186')
('26', '13', '3', '18', '17')

>>> main('26903168')
('0', '5', '0', '20', '51')

>>> main('4702004')
('52', '14', '3', '61', '8')

Вариант №19

Задача №8

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

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

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

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

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

Тесты:

>>> main('836938165')
{'U2': 77, 'U3': 42, 'U4': 286, 'U5': 1}

>>> main('353392253')
{'U2': 51, 'U3': 5, 'U4': 337, 'U5': 0}

>>> main('754889024')
{'U2': 10, 'U3': 235, 'U4': 207, 'U5': 1}

>>> main('452998082')
{'U2': 30, 'U3': 3, 'U4': 432, 'U5': 0}

Вариант №20

Задача №8

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

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

Десятичная строка.
0 9 10 18 19 20 25 D1 D3 D4

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

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

Тесты:

>>> main('58714352')
{'D1': '0xf0', 'D3': '0x1', 'D4': '0x37'}

>>> main('64791382')
{'D1': '0x356', 'D3': '0x1', 'D4': '0x3d'}

>>> main('9164836')
{'D1': '0x24', 'D3': '0x1', 'D4': '0x8'}

>>> main('64012141')
{'D1': '0x36d', 'D3': '0x0', 'D4': '0x3d'}

Вариант №21

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 14 15 18 19 22 23 26 L1 L3 L4 L5

Тесты:

>>> main(('18', '1', '8', '13'))
'0x6c08012'

>>> main(('50', '5', '2', '14'))
'0x7128032'

>>> main(('121', '10', '2', '3'))
'0x1950079'

>>> main(('8', '13', '11', '4'))
'0x25e8008'

Вариант №22

Задача №8

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

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

Целое.
0 4 5 9 10 15 D1 D2 16 22 23 28 29 31 D4 D5 D6

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

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

Тесты:

>>> main(2980619313)
[('D1', 17), ('D2', 1), ('D4', 40), ('D5', 35), ('D6', 5)]

>>> main(1346099350)
[('D1', 22), ('D2', 4), ('D4', 59), ('D5', 32), ('D6', 2)]

>>> main(855051537)
[('D1', 17), ('D2', 8), ('D4', 119), ('D5', 37), ('D6', 1)]

>>> main(1367623196)
[('D1', 28), ('D2', 16), ('D4', 4), ('D5', 35), ('D6', 2)]

Вариант №23

Задача №8

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

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

Целое.
0 5 6 13 14 18 19 21 J1 J2 J4

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

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

Тесты:

>>> main(4023644)
{'J1': 28, 'J2': 149, 'J4': 7}

>>> main(217603)
{'J1': 3, 'J2': 72, 'J4': 0}

>>> main(246972)
{'J1': 60, 'J2': 18, 'J4': 0}

>>> main(3230262)
{'J1': 54, 'J2': 40, 'J4': 6}

Вариант №24

Задача №8

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

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

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

0 1 2 3 4 10 11 17 18 23 I1 I2 I3 I4 I5

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

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

0 1 2 7 8 14 15 16 17 23 I2 I5 I4 I1 I3

Тесты:

>>> main('0x7bf4d6')
'0x9b7e79'

>>> main('0xba8a38')
'0x4651ba'

>>> main('0xb0475f')
'0xeb88b3'

>>> main('0x4db88d')
'0x10b74f'

Вариант №25

Задача №8

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

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

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

0 3 4 11 12 14 15 23 24 25 N2 N3 N4 N5

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

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

0 7 8 10 11 19 20 21 22 25 N2 N3 N4 N5

Тесты:

>>> main('55453189')
'3465824'

>>> main('55999054')
'3499940'

>>> main('58987214')
'3686700'

>>> main('55026059')
'3439128'

Вариант №26

Задача №8

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

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

Целое.
0 1 2 3 8 9 16 B1 B2 B3 B4 17 18 19 24 25 32 B4 B5 B6

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

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

Тесты:

>>> main(5701308301)
{'B1': '0x1', 'B2': '0x2', 'B3': '0x31', 'B4': '0x187', 'B5': '0x3a', 'B6': '0xa9'}

>>> main(1338380726)
{'B1': '0x0', 'B2': '0x3', 'B3': '0x36', 'B4': '0x308', 'B5': '0x38', 'B6': '0x27'}

>>> main(6101043068)
{'B1': '0x0', 'B2': '0x2', 'B3': '0x2f', 'B4': '0x343', 'B5': '0x34', 'B6': '0xb5'}

>>> main(6424019315)
{'B1': '0x1', 'B2': '0x1', 'B3': '0x2e', 'B4': '0x360', 'B5': '0x1c', 'B6': '0xbf'}

Вариант №27

Задача №8

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

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

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

0 3 4 12 13 18 19 27 J1 J2 J4

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

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

0 5 6 9 10 18 19 27 J1 J2 J4

Тесты:

>>> main('0x26467f0')
'0x261fc00'

>>> main('0x6d71151')
'0x6d45440'

>>> main('0xb0be371')
'0xb08dc40'

>>> main('0x1403230')
'0x1448c00'

Вариант №28

Задача №8

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

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

Целое.

0 3 4 8 9 14 15 16 I1 I2 I3 I4

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

Целое.

0 5 6 7 8 11 12 16 I3 I4 I1 I2

Тесты:

>>> main(87219)
45994

>>> main(78417)
20889

>>> main(62950)
124538

>>> main(50996)
78947

Вариант №29

Задача №8

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

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

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

0 6 7 8 11 12 21 U2 U3 U4

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

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

0 1 7 8 11 12 21 U2 U3 U4

Тесты:

>>> main('2871484')
'2871297'

>>> main('3946381')
'3946241'

>>> main('1753169')
'1753088'

>>> main('2896187')
'2896128'

Вариант №30

Задача №8

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

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

Десятичная строка.
0 2 3 5 6 14 15 L1 L2 L3 L4

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

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

Тесты:

>>> main('28542')
[('L1', '0x6'), ('L2', '0x7'), ('L3', '0x1bd'), ('L4', '0x0')]

>>> main('508')
[('L1', '0x4'), ('L2', '0x7'), ('L3', '0x7'), ('L4', '0x0')]

>>> main('21412')
[('L1', '0x4'), ('L2', '0x4'), ('L3', '0x14e'), ('L4', '0x0')]

>>> main('41489')
[('L1', '0x1'), ('L2', '0x2'), ('L3', '0x88'), ('L4', '0x1')]

Вариант №31

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 8 9 13 14 16 17 24 Q2 Q3 Q4

Тесты:

>>> main([('Q2', 25), ('Q3', 6), ('Q4', 45)])
'0x5bb200'

>>> main([('Q2', 0), ('Q3', 3), ('Q4', 183)])
'0x16ec000'

>>> main([('Q2', 14), ('Q3', 2), ('Q4', 149)])
'0x12a9c00'

>>> main([('Q2', 1), ('Q3', 7), ('Q4', 124)])
'0xf9c200'

Вариант №32

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 8 9 13 14 16 Q1 Q2 Q3 17 21 22 23 32 Q3 Q4

Тесты:

>>> main({'Q1': '94', 'Q2': '25', 'Q3': '104', 'Q4': '1'})
'0x5a325e'

>>> main({'Q1': '144', 'Q2': '1', 'Q3': '200', 'Q4': '0'})
'0x320290'

>>> main({'Q1': '220', 'Q2': '9', 'Q3': '100', 'Q4': '0'})
'0x1912dc'

>>> main({'Q1': '477', 'Q2': '2', 'Q3': '184', 'Q4': '1'})
'0x6e05dd'

Вариант №33

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 7 8 15 16 22 23 30 K1 K2 K3 K4 K5

Тесты:

>>> main([('K1', '0x3'), ('K2', '0x5'), ('K3', '0xdf'), ('K4', '0x11'), ('K5', '0xdd')])
'0x6e91df53'

>>> main([('K1', '0xd'), ('K2', '0x9'), ('K3', '0xa0'), ('K4', '0x7d'), ('K5', '0x55')])
'0x2afda09d'

>>> main([('K1', '0x4'), ('K2', '0xe'), ('K3', '0x13'), ('K4', '0x5f'), ('K5', '0x34')])
'0x1a5f13e4'

>>> main([('K1', '0xe'), ('K2', '0x1'), ('K3', '0xcc'), ('K4', '0x40'), ('K5', '0xe7')])
'0x73c0cc1e'

Вариант №34

Задача №8

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

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

Целое.
0 1 2 10 11 16 17 19 20 25 B1 B2 B3 B4 B5

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

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

Тесты:

>>> main(39601516)
{'B1': '0', 'B2': '347', 'B3': '8', 'B4': '6', 'B5': '37'}

>>> main(57140793)
{'B1': '1', 'B2': '398', 'B3': '60', 'B4': '3', 'B5': '54'}

>>> main(9142459)
{'B1': '3', 'B2': '46', 'B3': '48', 'B4': '5', 'B5': '8'}

>>> main(55040108)
{'B1': '0', 'B2': '27', 'B3': '59', 'B4': '3', 'B5': '52'}

Вариант №35

Задача №8

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

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

Целое.

0 4 5 13 14 17 X2 X3 18 22 23 25 26 35 X3 X4 X5

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

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

0 4 5 14 15 17 X5 X3 18 23 24 26 27 35 X3 X4 X2

Тесты:

>>> main(55709789024)
'46592419776'

>>> main(58409515150)
'60716018880'

>>> main(33371591140)
'19230113312'

>>> main(60926637746)
'58770944352'

Вариант №36

Задача №8

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

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

Шестнадцатиричная строка.
0 6 7 11 12 16 17 22 V2 V3 V4

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

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

Тесты:

>>> main('0x1b9d85')
[('V2', '0x1b'), ('V3', '0x19'), ('V4', '0xd')]

>>> main('0x5f8d5c')
[('V2', '0x1a'), ('V3', '0x18'), ('V4', '0x2f')]

>>> main('0x45945b')
[('V2', '0x8'), ('V3', '0x19'), ('V4', '0x22')]

>>> main('0xbf292')
[('V2', '0x5'), ('V3', '0x1f'), ('V4', '0x5')]

Вариант №37

Задача №8

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

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

Целое.

0 6 7 11 12 17 18 22 23 29 30 O1 O2 O3 O4 O5 O6

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

Целое.

0 4 5 6 10 11 17 18 23 24 30 O4 O6 O2 O5 O3 O1

Тесты:

>>> main(2086179139)
1126678710

>>> main(272531775)
1067516047

>>> main(1687650287)
1876840421

>>> main(945886826)
1783071512

Вариант №38

Задача №8

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

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

Целое.

0 3 4 13 14 17 U1 U2 18 19 28 29 33 34 35 U4 U5 U6

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

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

0 1 2 6 7 10 11 15 16 17 U6 U5 U1 U2 18 25 26 35 U2 U4

Тесты:

>>> main(46049058761)
'0xc5dfc04d6'

>>> main(13359569942)
'0xe25c10360'

>>> main(29432921261)
'0xd2bca06d9'

>>> main(58657096372)
'0x41c2b0237'

Вариант №39

Задача №8

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

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

Шестнадцатиричная строка.
0 6 7 13 14 16 17 22 23 29 B1 B2 B3 B4 B5

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

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

Тесты:

>>> main('0x3390f6d1')
('0x51', '0x6d', '0x3', '0x8', '0x67')

>>> main('0x1294666b')
('0x6b', '0x4c', '0x1', '0xa', '0x25')

>>> main('0xc9ee368')
('0x68', '0x46', '0x3', '0xf', '0x19')

>>> main('0x17e26e5c')
('0x5c', '0x5c', '0x1', '0x31', '0x2f')

Вариант №40

Задача №8

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

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

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

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

Целое.
0 6 7 12 13 20 21 26 27 28 K1 K2 K3 K5

Тесты:

>>> main({'K1': '0x16', 'K2': '0x21', 'K3': '0xbd', 'K5': '0x1'})
135770262

>>> main({'K1': '0x17', 'K2': '0x3a', 'K3': '0x4b', 'K5': '0x2'})
269057303

>>> main({'K1': '0x22', 'K2': '0x25', 'K3': '0x19', 'K5': '0x1'})
134427298

>>> main({'K1': '0x38', 'K2': '0x3a', 'K3': '0x55', 'K5': '0x3'})
403356984