ИКБО-61-23

Вариант №1

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x6897ea')
[('F1', '0x1ea'), ('F3', '0x25'), ('F4', '0x1a')]

>>> main('0x21d757')
[('F1', '0x157'), ('F3', '0x75'), ('F4', '0x8')]

>>> main('0x5180d2')
[('F1', '0xd2'), ('F3', '0x60'), ('F4', '0x14')]

>>> main('0x2235c')
[('F1', '0x15c'), ('F3', '0x88'), ('F4', '0x0')]

Вариант №2

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main({'K1': 168, 'K3': 24, 'K4': 16})
1080033448

>>> main({'K1': 234, 'K3': 72, 'K4': 25})
1696596202

>>> main({'K1': 173, 'K3': 254, 'K4': 66})
4495769773

>>> main({'K1': 4, 'K3': 70, 'K4': 50})
3373793284

Вариант №3

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x6c8c2')
'0x811b'

>>> main('0x34945')
'0x14129'

>>> main('0x1a46d')
'0x3448c'

>>> main('0x58715')
'0x540e2'

Вариант №4

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main({'Q1': 57, 'Q2': 34, 'Q3': 2, 'Q5': 13, 'Q6': 15})
65297060153

>>> main({'Q1': 35, 'Q2': 360, 'Q3': 5, 'Q5': 18, 'Q6': 12})
52747940899

>>> main({'Q1': 54, 'Q2': 340, 'Q3': 6, 'Q5': 21, 'Q6': 17})
74424166966

>>> main({'Q1': 11, 'Q2': 299, 'Q3': 2, 'Q5': 19, 'Q6': 29})
125829289355

Вариант №5

Задача №8

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

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

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

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

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

Тесты:

>>> main('956962034544')
(16, 11, 233, 432, 19, 445)

>>> main('385409461132')
(12, 12, 213, 24, 15, 179)

>>> main('829128188316')
(28, 12, 16, 498, 2, 386)

>>> main('394505320899')
(3, 14, 188, 300, 22, 183)

Вариант №6

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(124818591)
'524882158'

>>> main(339918307)
'132011656'

>>> main(105025492)
'150819016'

>>> main(348908615)
'247758489'

Вариант №7

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x11297')
{'F1': '1', 'F2': '3', 'F3': '18', 'F4': '137', 'F5': '0'}

>>> main('0x4ce91')
{'F1': '1', 'F2': '0', 'F3': '18', 'F4': '103', 'F5': '1'}

>>> main('0x6ae27')
{'F1': '1', 'F2': '3', 'F3': '4', 'F4': '343', 'F5': '1'}

>>> main('0x144e9')
{'F1': '1', 'F2': '0', 'F3': '29', 'F4': '162', 'F5': '0'}

Вариант №8

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(1813337644)
'0x2ac12da6'

>>> main(660484038)
'0x7175c68f'

>>> main(1212267794)
'0xd84132d'

>>> main(309454845)
'0xf27fc57'

Вариант №9

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(271216869)
[('M1', '101'), ('M3', '14'), ('M4', '0'), ('M5', '10'), ('M6', '129')]

>>> main(491627657)
[('M1', '9'), ('M3', '4'), ('M4', '1'), ('M5', '13'), ('M6', '234')]

>>> main(457133286)
[('M1', '102'), ('M3', '9'), ('M4', '0'), ('M5', '31'), ('M6', '217')]

>>> main(973484774)
[('M1', '102'), ('M3', '6'), ('M4', '0'), ('M5', '6'), ('M6', '464')]

Вариант №10

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main('21152')
2346

>>> main('772584')
294046

>>> main('540555')
854008

>>> main('462939')
909573

Вариант №11

Задача №8

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

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

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

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

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

Тесты:

>>> main([('A1', 978), ('A2', 1), ('A3', 236), ('A4', 3)])
'0x3ec7d2'

>>> main([('A1', 54), ('A2', 2), ('A3', 144), ('A4', 22)])
'0x1690836'

>>> main([('A1', 950), ('A2', 1), ('A3', 60), ('A4', 6)])
'0x63c7b6'

>>> main([('A1', 544), ('A2', 1), ('A3', 178), ('A4', 1)])
'0x1b2620'

Вариант №12

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main('0x3d31533')
64049158

>>> main('0x2b9428c')
45885442

>>> main('0x24751e7')
38082574

>>> main('0x3235087')
52758534

Вариант №13

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main('461836')
71792

>>> main('2014695')
118763

>>> main('345403')
30292

>>> main('2073710')
56826

Вариант №14

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(15114)
[('G1', 10), ('G2', 22), ('G3', 3)]

>>> main(23635)
[('G1', 83), ('G2', 24), ('G3', 5)]

>>> main(9123)
[('G1', 35), ('G2', 7), ('G3', 2)]

>>> main(10156)
[('G1', 44), ('G2', 15), ('G3', 2)]

Вариант №15

Задача №8

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

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

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

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

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

Тесты:

>>> main(('123', '3', '5', '2', '70'))
'18799624315'

>>> main(('122', '2', '14', '48', '373'))
'100329652346'

>>> main(('125', '2', '2', '25', '278'))
'74730242173'

>>> main(('62', '0', '17', '35', '48'))
'13033930814'

Вариант №16

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main({'Y1': 3, 'Y2': 459, 'Y3': 2, 'Y4': 6})
403247

>>> main({'Y1': 0, 'Y2': 18, 'Y3': 7, 'Y4': 121})
7958600

>>> main({'Y1': 2, 'Y2': 23, 'Y3': 6, 'Y4': 117})
7692382

>>> main({'Y1': 3, 'Y2': 748, 'Y3': 4, 'Y4': 26})
1723315

Вариант №17

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main(('231', '178', '440', '5'))
687310202087

>>> main(('3', '449', '437', '0'))
114786819

>>> main(('200', '382', '235', '3'))
412378660040

>>> main(('306', '314', '210', '8'))
1099566839090

Вариант №18

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x7f5')
(5, 2, 1, 31)

>>> main('0x3e89')
(1, 1, 0, 250)

>>> main('0x207b')
(3, 3, 1, 129)

>>> main('0x22ad')
(5, 1, 1, 138)

Вариант №19

Задача №8

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

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

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

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

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

Тесты:

>>> main([('W1', '0x1f4'), ('W2', '0x28'), ('W4', '0x0')])
'0x51f4'

>>> main([('W1', '0x3e'), ('W2', '0x7'), ('W4', '0x3')])
'0xc0e3e'

>>> main([('W1', '0x13d'), ('W2', '0x2e'), ('W4', '0x1')])
'0x45d3d'

>>> main([('W1', '0xd9'), ('W2', '0x3e'), ('W4', '0x3')])
'0xc7cd9'

Вариант №20

Задача №8

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

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

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

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

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

Тесты:

>>> main('0xa64c362')
'0x1b105326'

>>> main('0x1a22e934')
'0x9a2d117'

>>> main('0x751a30b')
'0x18583a8d'

>>> main('0x53f9385')
'0x1c2c29fc'

Вариант №21

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main('144618')
857936

>>> main('813301')
681897

>>> main('322568')
729155

>>> main('17336')
36289

Вариант №22

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(148333720)
'80104824'

>>> main(1202862)
'91595040'

>>> main(61869283)
'119065347'

>>> main(156474542)
'91346233'

Вариант №23

Задача №8

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

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

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

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

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

Тесты:

>>> main([('P1', '31'), ('P2', '838'), ('P3', '4'), ('P4', '107')])
'1795477919'

>>> main([('P1', '19'), ('P2', '1013'), ('P3', '172'), ('P4', '60')])
'1017970003'

>>> main([('P1', '45'), ('P2', '226'), ('P3', '93'), ('P4', '85')])
'1432172717'

>>> main([('P1', '43'), ('P2', '863'), ('P3', '221'), ('P4', '110')])
'1860032491'

Вариант №24

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(5358520905877)
[('S1', 5), ('S2', 18), ('S3', 24), ('S4', 47), ('S5', 58), ('S6', 311)]

>>> main(6831953466745)
[('S1', 1), ('S2', 47), ('S3', 106), ('S4', 10), ('S5', 43), ('S6', 397)]

>>> main(4062772582801)
[('S1', 1), ('S2', 50), ('S3', 236), ('S4', 7), ('S5', 31), ('S6', 236)]

>>> main(7540071836118)
[('S1', 6), ('S2', 58), ('S3', 212), ('S4', 979), ('S5', 56), ('S6', 438)]

Вариант №25

Задача №8

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

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

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

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

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

Тесты:

>>> main([('D1', '0x2'), ('D2', '0x2'), ('D3', '0xf'), ('D4', '0xac'), ('D5', '0x23'), ('D6', '0x7')])
'1013629922'

>>> main([('D1', '0xa'), ('D2', '0x3'), ('D3', '0x1c'), ('D4', '0x1db'), ('D5', '0x24'), ('D6', '0x1')])
'211662650'

>>> main([('D1', '0x4'), ('D2', '0x3'), ('D3', '0x2b'), ('D4', '0x73'), ('D5', '0xe'), ('D6', '0xb')])
'1506228980'

>>> main([('D1', '0x4'), ('D2', '0x2'), ('D3', '0xf'), ('D4', '0x136'), ('D5', '0x22'), ('D6', '0xf')])
'2085839844'

Вариант №26

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main([('C1', '122'), ('C2', '27'), ('C3', '48'), ('C5', '396')])
830672378

>>> main([('C1', '72'), ('C2', '17'), ('C3', '51'), ('C5', '508')])
1065564360

>>> main([('C1', '9'), ('C2', '25'), ('C3', '62'), ('C5', '476')])
998501513

>>> main([('C1', '19'), ('C2', '1'), ('C3', '19'), ('C5', '419')])
878784659

Вариант №27

Задача №8

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

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

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

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

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

Тесты:

>>> main({'U1': '29', 'U2': '1', 'U3': '7', 'U4': '0', 'U5': '16'})
'0x801fd'

>>> main({'U1': '30', 'U2': '0', 'U3': '52', 'U4': '2', 'U5': '23'})
'0xbcd1e'

>>> main({'U1': '15', 'U2': '1', 'U3': '61', 'U4': '3', 'U5': '4'})
'0x26f6f'

>>> main({'U1': '26', 'U2': '0', 'U3': '100', 'U4': '2', 'U5': '19'})
'0x9d91a'

Вариант №28

Задача №8

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

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

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

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

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

Тесты:

>>> main(('0x9', '0x1', '0x1', '0x0'))
'0xa9'

>>> main(('0x0', '0x0', '0x0', '0x1'))
'0x100'

>>> main(('0x1a', '0x2', '0x0', '0x1'))
'0x15a'

>>> main(('0x10', '0x3', '0x1', '0x1'))
'0x1f0'

Вариант №29

Задача №8

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

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

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

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

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

Тесты:

>>> main('408317')
{'I1': '0x1', 'I2': '0xe', 'I3': '0x3', 'I4': '0x15', 'I5': '0x63'}

>>> main('75679')
{'I1': '0x1', 'I2': '0xf', 'I3': '0x0', 'I4': '0xf', 'I5': '0x12'}

>>> main('146226')
{'I1': '0x0', 'I2': '0x9', 'I3': '0x1', 'I4': '0x16', 'I5': '0x23'}

>>> main('242808')
{'I1': '0x0', 'I2': '0xc', 'I3': '0x3', 'I4': '0x8', 'I5': '0x3b'}

Вариант №30

Задача №8

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

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

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

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

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

Тесты:

>>> main({'J2': 389, 'J3': 51, 'J4': 119})
'0x1df3c28'

>>> main({'J2': 53, 'J3': 27, 'J4': 89})
'0x165b1a8'

>>> main({'J2': 56, 'J3': 44, 'J4': 238})
'0x3bac1c0'

>>> main({'J2': 366, 'J3': 34, 'J4': 189})
'0x2f62b70'

Вариант №31

Задача №8

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

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

Целое.

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

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

Тесты:

>>> main(65228311)
'65106816'

>>> main(62095444)
'62210048'

>>> main(34924002)
'35531072'

>>> main(12454761)
'11965120'

Вариант №32

Задача №8

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

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

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

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

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

Тесты:

>>> main(('0xc9', '0x1', '0x19', '0x5', '0x1'))
'904393'

>>> main(('0x176', '0x0', '0x1f', '0x0', '0x7'))
'3733878'

>>> main(('0x25e', '0x0', '0x3', '0x3', '0x9'))
'4921950'

>>> main(('0x1d9', '0x1', '0x6', '0x7', '0x9'))
'5191129'

Вариант №33

Задача №8

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

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

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

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

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

Тесты:

>>> main('47421142260')
'131319825730'

>>> main('95089660242')
'44310401508'

>>> main('74221559599')
'25534440441'

>>> main('16767737026')
'104517989303'

Вариант №34

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main([('S1', 134), ('S2', 26), ('S3', 482), ('S4', 42), ('S5', 16), ('S6', 109)])
3762571467398

>>> main([('S1', 244), ('S2', 13), ('S3', 468), ('S4', 108), ('S5', 29), ('S6', 34)])
1199826439668

>>> main([('S1', 206), ('S2', 23), ('S3', 257), ('S4', 106), ('S5', 20), ('S6', 27)])
949634480078

>>> main([('S1', 48), ('S2', 1), ('S3', 2), ('S4', 171), ('S5', 29), ('S6', 113)])
3914506191152

Вариант №35

Задача №8

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

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

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

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

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

Тесты:

>>> main([('N1', '401'), ('N2', '22'), ('N3', '3')])
'0x1d991'

>>> main([('N1', '658'), ('N2', '29'), ('N3', '0')])
'0x7692'

>>> main([('N1', '78'), ('N2', '16'), ('N3', '6')])
'0x3404e'

>>> main([('N1', '129'), ('N2', '12'), ('N3', '3')])
'0x1b081'

Вариант №36

Задача №8

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

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

Целое.

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

Целое.

Тесты:

>>> main(853420421)
180356825

>>> main(1067572478)
1996492063

>>> main(709527153)
557843029

>>> main(559910931)
1690307280

Вариант №37

Задача №8

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

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

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

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

Целое.

Тесты:

>>> main('0x35db21c')
221028

>>> main('0x30c291f')
199762

>>> main('0x3d6411e')
513154

>>> main('0x1f7c838')
391056

Вариант №38

Задача №8

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

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

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

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

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

Тесты:

>>> main({'S2': '0xd', 'S3': '0x47', 'S4': '0x257'})
'1256488192'

>>> main({'S2': '0x4', 'S3': '0x176', 'S4': '0x166'})
'752313344'

>>> main({'S2': '0x9', 'S3': '0x3d', 'S4': '0x1dc'})
'998496512'

>>> main({'S2': '0x2', 'S3': '0x14a', 'S4': '0x1d0'})
'974430720'

Вариант №39

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x40b3bcc')
[('P1', '0x3cc'), ('P2', '0x6'), ('P3', '0x19'), ('P4', '0x2'), ('P5', '0x40')]

>>> main('0x3947801')
[('P1', '0x1'), ('P2', '0x6'), ('P3', '0x3'), ('P4', '0x1'), ('P5', '0x39')]

>>> main('0x18e47df8')
[('P1', '0x1f8'), ('P2', '0x7'), ('P3', '0x3'), ('P4', '0x1'), ('P5', '0x18e')]

>>> main('0x1b85856d')
[('P1', '0x16d'), ('P2', '0x1'), ('P3', '0xc'), ('P4', '0x1'), ('P5', '0x1b8')]

Вариант №40

Задача №8

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

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

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

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

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

Тесты:

>>> main('0x1c820f365')
{'X2': '108', 'X3': '28', 'X4': '65', 'X5': '400', 'X6': '1'}

>>> main('0x2199735c')
{'X2': '107', 'X3': '28', 'X4': '50', 'X5': '67', 'X6': '0'}

>>> main('0x1cfc9fe93')
{'X2': '82', 'X3': '31', 'X4': '147', 'X5': '415', 'X6': '1'}

>>> main('0xb27fe05')
{'X2': '64', 'X3': '31', 'X4': '79', 'X5': '22', 'X6': '0'}