Задача №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')]
Задача №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
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Шестнадцатиричная строка.
Выходные данные:
Шестнадцатиричная строка.
Тесты:
>>> main('0x6c8c2')
'0x811b'
>>> main('0x34945')
'0x14129'
>>> main('0x1a46d')
'0x3448c'
>>> main('0x58715')
'0x540e2'
Задача №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
Задача №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)
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Целое.
Выходные данные:
Десятичная строка.
Тесты:
>>> main(124818591)
'524882158'
>>> main(339918307)
'132011656'
>>> main(105025492)
'150819016'
>>> main(348908615)
'247758489'
Задача №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
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Целое.
Выходные данные:
Шестнадцатиричная строка.
Тесты:
>>> main(1813337644)
'0x2ac12da6'
>>> main(660484038)
'0x7175c68f'
>>> main(1212267794)
'0xd84132d'
>>> main(309454845)
'0xf27fc57'
Задача №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')]
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Десятичная строка.
Выходные данные:
Целое.
Тесты:
>>> main('21152')
2346
>>> main('772584')
294046
>>> main('540555')
854008
>>> main('462939')
909573
Задача №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'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Шестнадцатиричная строка.
Выходные данные:
Целое.
Тесты:
>>> main('0x3d31533')
64049158
>>> main('0x2b9428c')
45885442
>>> main('0x24751e7')
38082574
>>> main('0x3235087')
52758534
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Десятичная строка.
Выходные данные:
Целое.
Тесты:
>>> main('461836')
71792
>>> main('2014695')
118763
>>> main('345403')
30292
>>> main('2073710')
56826
Задача №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)]
Задача №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'
Задача №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
Задача №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
Задача №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)
Задача №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'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Шестнадцатиричная строка.
Выходные данные:
Шестнадцатиричная строка.
Тесты:
>>> main('0xa64c362')
'0x1b105326'
>>> main('0x1a22e934')
'0x9a2d117'
>>> main('0x751a30b')
'0x18583a8d'
>>> main('0x53f9385')
'0x1c2c29fc'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Десятичная строка.
Выходные данные:
Целое.
Тесты:
>>> main('144618')
857936
>>> main('813301')
681897
>>> main('322568')
729155
>>> main('17336')
36289
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции.
Входные данные:
Целое.
Выходные данные:
Десятичная строка.
Тесты:
>>> main(148333720)
'80104824'
>>> main(1202862)
'91595040'
>>> main(61869283)
'119065347'
>>> main(156474542)
'91346233'
Задача №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'
Задача №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)]
Задача №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'
Задача №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
Задача №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'
Задача №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'
Задача №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'}
Задача №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'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Целое.
Выходные данные:
Десятичная строка.
Тесты:
>>> main(65228311)
'65106816'
>>> main(62095444)
'62210048'
>>> main(34924002)
'35531072'
>>> main(12454761)
'11965120'
Задача №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'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Десятичная строка.
Выходные данные:
Десятичная строка.
Тесты:
>>> main('47421142260')
'131319825730'
>>> main('95089660242')
'44310401508'
>>> main('74221559599')
'25534440441'
>>> main('16767737026')
'104517989303'
Задача №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
Задача №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'
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Целое.
Выходные данные:
Целое.
Тесты:
>>> main(853420421)
180356825
>>> main(1067572478)
1996492063
>>> main(709527153)
557843029
>>> main(559910931)
1690307280
Задача №8
Реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты.
Входные данные:
Шестнадцатиричная строка.
Выходные данные:
Целое.
Тесты:
>>> main('0x35db21c')
221028
>>> main('0x30c291f')
199762
>>> main('0x3d6411e')
513154
>>> main('0x1f7c838')
391056
Задача №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'
Задача №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')]
Задача №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'}