ИНБО-08-22

Вариант №1

Задача №8

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

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

Целое.

0 8 9 10 11 18 19 25 W1 W2 W3

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

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

0 8 9 16 17 23 24 25 W1 W3 W2

Тесты:

>>> main(213392)
'0xd190'

>>> main(425461)
'0x2019ff5'

>>> main(505719)
'0x301ed77'

>>> main(362086)
'0x3016066'

Вариант №2

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 19 20 22 K1 K2 K3 23 24 29 30 36 37 44 K3 K4 K6

Тесты:

>>> main({'K1': 985, 'K2': 821, 'K3': 13, 'K4': 19, 'K6': 133})
'18279714052057'

>>> main({'K1': 488, 'K2': 52, 'K3': 14, 'K4': 28, 'K6': 26})
'3573897286120'

>>> main({'K1': 356, 'K2': 160, 'K3': 2, 'K4': 44, 'K6': 48})
'6597810225508'

>>> main({'K1': 917, 'K2': 972, 'K3': 0, 'K4': 37, 'K6': 166})
'22815488029589'

Вариант №3

Задача №8

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

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

Целое.
0 1 2 11 12 17 18 22 B1 B3 B4 B5

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

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

Тесты:

>>> main(6165674)
[('B1', 0), ('B3', 298), ('B4', 33), ('B5', 23)]

>>> main(4088447)
[('B1', 1), ('B3', 159), ('B4', 38), ('B5', 15)]

>>> main(5109441)
[('B1', 1), ('B3', 432), ('B4', 31), ('B5', 19)]

>>> main(6641287)
[('B1', 1), ('B3', 417), ('B4', 21), ('B5', 25)]

Вариант №4

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 9 10 16 17 18 V1 V3 19 23 24 27 28 36 V3 V4 V5

Тесты:

>>> main({'V1': '658', 'V3': '21', 'V4': '9', 'V5': '315'})
'0x13b92a0292'

>>> main({'V1': '865', 'V3': '106', 'V4': '0', 'V5': '319'})
'0x13f0d40361'

>>> main({'V1': '706', 'V3': '26', 'V4': '14', 'V5': '18'})
'0x12e3402c2'

>>> main({'V1': '638', 'V3': '63', 'V4': '5', 'V5': '306'})
'0x13257e027e'

Вариант №5

Задача №8

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

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

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

0 8 9 15 A1 16 18 19 25 26 31 A3 A4

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

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

0 6 7 15 A3 A1 16 21 22 31 A4

Тесты:

>>> main('3511284808')
'0x342429'

>>> main('1671797423')
'0x1857f4'

>>> main('3271681994')
'0x30e560'

>>> main('2160151547')
'0x20fd98'

Вариант №6

Задача №8

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

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

Шестнадцатиричная строка.
0 5 6 12 13 14 18 19 22 U1 U2 U3 U4

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

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

Тесты:

>>> main('0x793cc')
[('U1', 12), ('U2', 79), ('U3', 0), ('U4', 30)]

>>> main('0x64d6d')
[('U1', 45), ('U2', 53), ('U3', 0), ('U4', 25)]

>>> main('0x22701')
[('U1', 1), ('U2', 28), ('U3', 1), ('U4', 8)]

>>> main('0x6cb1b')
[('U1', 27), ('U2', 44), ('U3', 0), ('U4', 27)]

Вариант №7

Задача №8

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

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

Целое.

0 8 9 11 12 16 N2 N3 17 18 19 22 23 29 30 33 N3 N4 N5 N6

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

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

0 3 4 10 11 14 15 16 N6 N3 N4 N5 17 21 22 24 25 33 N5 N2

Тесты:

>>> main(1708582278)
'0xa5d6e1'

>>> main(10561151392)
'0x357e69'

>>> main(5829083298)
'0x1b70c5'

>>> main(8800878648)
'0xc92c8'

Вариант №8

Задача №8

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

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

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

0 2 3 4 5 6 7 11 K1 K2 K3 K4

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

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

0 2 3 7 8 9 10 11 K1 K4 K3 K2

Тесты:

>>> main('0x240')
'544'

>>> main('0x5cd')
'1629'

>>> main('0x68c')
'1132'

>>> main('0x6d')
'1797'

Вариант №9

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 11 12 13 16 17 21 22 28 C1 C2 C3 C4 C5 C6

Тесты:

>>> main(('0x8', '0x18', '0x0', '0x0', '0x9', '0x54'))
'353504264'

>>> main(('0x5b', '0x12', '0x1', '0x3', '0x3', '0x45'))
'289831259'

>>> main(('0x58', '0x6', '0x0', '0x9', '0x5', '0x69'))
'441131864'

>>> main(('0x2', '0x8', '0x1', '0x9', '0xa', '0x68'))
'437597186'

Вариант №10

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 15 16 22 23 26 G1 G2 G3 G4

Тесты:

>>> main([('G1', 146), ('G2', 197), ('G3', 67), ('G4', 7)])
'0x3c3c592'

>>> main([('G1', 74), ('G2', 65), ('G3', 79), ('G4', 15)])
'0x7cf414a'

>>> main([('G1', 191), ('G2', 117), ('G3', 57), ('G4', 0)])
'0x3975bf'

>>> main([('G1', 133), ('G2', 241), ('G3', 109), ('G4', 14)])
'0x76df185'

Вариант №11

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 8 9 11 12 14 15 22 P1 P2 P3 P4

Тесты:

>>> main({'P1': '414', 'P2': '6', 'P3': '4', 'P4': '14'})
'0x74d9e'

>>> main({'P1': '137', 'P2': '1', 'P3': '4', 'P4': '159'})
'0x4fc289'

>>> main({'P1': '431', 'P2': '1', 'P3': '1', 'P4': '201'})
'0x6493af'

>>> main({'P1': '424', 'P2': '3', 'P3': '2', 'P4': '170'})
'0x5527a8'

Вариант №12

Задача №8

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

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

Целое.
0 8 9 15 16 I1 I2 I3 17 20 21 29 30 33 I3 I4 I5

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

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

Тесты:

>>> main(7993947720)
{'I1': 72, 'I2': 123, 'I3': 25, 'I4': 227, 'I5': 7}

>>> main(4853112887)
{'I1': 55, 'I2': 80, 'I3': 4, 'I4': 266, 'I5': 4}

>>> main(16350739106)
{'I1': 162, 'I2': 61, 'I3': 20, 'I4': 116, 'I5': 15}

>>> main(13315004729)
{'I1': 313, 'I2': 108, 'I3': 2, 'I4': 205, 'I5': 12}

Вариант №13

Задача №8

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

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

Десятичная строка.
0 4 5 10 11 18 19 23 E1 E2 E3 E4

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

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

Тесты:

>>> main('7908569')
[('E1', 25), ('E2', 38), ('E3', 21), ('E4', 15)]

>>> main('9252368')
[('E1', 16), ('E2', 48), ('E3', 165), ('E4', 17)]

>>> main('12427209')
[('E1', 9), ('E2', 62), ('E3', 179), ('E4', 23)]

>>> main('3302838')
[('E1', 22), ('E2', 45), ('E3', 76), ('E4', 6)]

Вариант №14

Задача №8

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

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

Целое.

0 1 7 8 11 12 13 14 18 19 26 G1 G2 G3 G4 G5 G6

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

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

0 1 8 9 12 13 14 15 21 22 26 G1 G6 G3 G4 G2 G5

Тесты:

>>> main(112887186)
'44338094'

>>> main(27739439)
'122391145'

>>> main(47647046)
'118592180'

>>> main(13889170)
'65330228'

Вариант №15

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 6 7 15 16 23 24 25 26 27 D1 D2 D3 D4

Тесты:

>>> main(('0x7c', '0x87', '0x37', '0x3'))
'0x33743fc'

>>> main(('0x56', '0x146', '0xfa', '0x3'))
'0x3faa356'

>>> main(('0x44', '0x11b', '0x1f', '0x3'))
'0x31f8dc4'

>>> main(('0x71', '0xa5', '0x9', '0x2'))
'0x20952f1'

Вариант №16

Задача №8

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

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

Целое.
0 6 7 8 9 16 17 19 W1 W3 W4

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

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

Тесты:

>>> main(864775)
('0x7', '0x99', '0x6')

>>> main(254625)
('0x21', '0xf1', '0x1')

>>> main(906671)
('0x2f', '0xea', '0x6')

>>> main(354213)
('0x25', '0xb3', '0x2')

Вариант №17

Задача №8

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

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

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

0 1 2 10 11 20 21 23 F1 F3 F4

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

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

0 1 2 4 5 13 14 23 F1 F4 F3

Тесты:

>>> main('203305')
'0x18c001'

>>> main('710159')
'0x568003'

>>> main('12783636')
'0x188018'

>>> main('13692263')
'0x87401b'

Вариант №18

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 2 3 8 9 12 13 14 23 24 25 D1 D2 D4 D5 D6

Тесты:

>>> main([('D1', '4'), ('D2', '31'), ('D4', '1'), ('D5', '43'), ('D6', '0')])
'0xae0fc'

>>> main([('D1', '7'), ('D2', '57'), ('D4', '0'), ('D5', '998'), ('D6', '3')])
'0x3f981cf'

>>> main([('D1', '2'), ('D2', '57'), ('D4', '1'), ('D5', '220'), ('D6', '0')])
'0x3721ca'

>>> main([('D1', '7'), ('D2', '9'), ('D4', '0'), ('D5', '850'), ('D6', '1')])
'0x1d4804f'

Вариант №19

Задача №8

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

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

Целое.
0 2 3 5 6 12 13 18 19 22 X1 X2 X3 X5

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

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

Тесты:

>>> main(2736882)
{'X1': '2', 'X2': '6', 'X3': '11', 'X5': '5'}

>>> main(4930281)
{'X1': '1', 'X2': '5', 'X3': '107', 'X5': '9'}

>>> main(7239500)
{'X1': '4', 'X2': '1', 'X3': '93', 'X5': '13'}

>>> main(8137722)
{'X1': '2', 'X2': '7', 'X3': '47', 'X5': '15'}

Вариант №20

Задача №8

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

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

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

0 1 9 10 16 17 22 H1 H2 H3 H4

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

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

0 1 9 10 15 16 22 H1 H2 H4 H3

Тесты:

>>> main('6078318')
'3128174'

>>> main('1172400')
'7873456'

>>> main('2718114')
'6181282'

>>> main('1434390')
'7875350'

Вариант №21

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 12 13 16 S1 S2 17 25 26 32 S4 S5

Тесты:

>>> main([('S1', '0x287'), ('S2', '0x0'), ('S4', '0x73'), ('S5', '0x7')])
'484835975'

>>> main([('S1', '0xf5'), ('S2', '0x1'), ('S4', '0x56'), ('S5', '0x5c')])
'6185288949'

>>> main([('S1', '0x95'), ('S2', '0x2'), ('S4', '0x15f'), ('S5', '0x78')])
'8099072149'

>>> main([('S1', '0x306'), ('S2', '0x0'), ('S4', '0x61'), ('S5', '0x7c')])
'8334213894'

Вариант №22

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 9 10 17 18 20 21 L1 L2 L3 L4 22 27 28 36 37 43 L4 L6

Тесты:

>>> main({'L1': 769, 'L2': 220, 'L3': 1, 'L4': 42, 'L6': 107})
'0xd6005477301'

>>> main({'L1': 666, 'L2': 28, 'L3': 3, 'L4': 60, 'L6': 75})
'0x960078c729a'

>>> main({'L1': 466, 'L2': 206, 'L3': 4, 'L4': 40, 'L6': 96})
'0xc00051339d2'

>>> main({'L1': 500, 'L2': 50, 'L3': 0, 'L4': 18, 'L6': 20})
'0x2800240c9f4'

Вариант №23

Задача №8

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

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

Десятичная строка.
0 1 10 11 19 20 21 22 S1 S2 S3 S4

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

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

Тесты:

>>> main('965346')
[('S1', '0'), ('S2', '369'), ('S3', '471'), ('S4', '0')]

>>> main('1599439')
[('S1', '1'), ('S2', '999'), ('S3', '268'), ('S4', '1')]

>>> main('2550445')
[('S1', '1'), ('S2', '342'), ('S3', '221'), ('S4', '2')]

>>> main('1791865')
[('S1', '1'), ('S2', '956'), ('S3', '362'), ('S4', '1')]

Вариант №24

Задача №8

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

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

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

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

Десятичная строка.
0 5 6 9 10 16 17 18 19 20 28 U1 U2 U3 U4 U5 U6

Тесты:

>>> main({'U1': 43, 'U2': 10, 'U3': 66, 'U4': 0, 'U5': 0, 'U6': 314})
'329321131'

>>> main({'U1': 57, 'U2': 7, 'U3': 77, 'U4': 2, 'U5': 1, 'U6': 257})
'270349817'

>>> main({'U1': 21, 'U2': 12, 'U3': 115, 'U4': 2, 'U5': 1, 'U6': 362})
'380489493'

>>> main({'U1': 20, 'U2': 15, 'U3': 108, 'U4': 3, 'U5': 1, 'U6': 93})
'98546644'

Вариант №25

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 16 17 19 L1 L2 L3 20 24 25 28 29 34 35 39 L3 L4 L5

Тесты:

>>> main([('L1', '99'), ('L2', '247'), ('L3', '80'), ('L4', '9'), ('L5', '46')])
'25008664163'

>>> main([('L1', '268'), ('L2', '133'), ('L3', '121'), ('L4', '11'), ('L5', '11')])
'6290606860'

>>> main([('L1', '340'), ('L2', '215'), ('L3', '50'), ('L4', '3'), ('L5', '9')])
'4939165524'

>>> main([('L1', '335'), ('L2', '95'), ('L3', '83'), ('L4', '14'), ('L5', '51')])
'27861106511'

Вариант №26

Задача №8

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

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

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

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

Целое.
0 2 3 9 10 12 13 18 W1 W2 W3 W4 19 20 21 30 31 36 W4 W5 W6

Тесты:

>>> main([('W1', '6'), ('W2', '29'), ('W3', '5'), ('W4', '140'), ('W5', '684'), ('W6', '34')])
74450048238

>>> main([('W1', '6'), ('W2', '52'), ('W3', '2'), ('W4', '58'), ('W5', '946'), ('W6', '34')])
74998827430

>>> main([('W1', '4'), ('W2', '62'), ('W3', '3'), ('W4', '170'), ('W5', '198'), ('W6', '8')])
17596501492

>>> main([('W1', '7'), ('W2', '77'), ('W3', '2'), ('W4', '65'), ('W5', '734'), ('W6', '39')])
85291706991

Вариант №27

Задача №8

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

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

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

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

Десятичная строка.
0 8 9 18 19 21 22 24 A1 A2 A3 A4

Тесты:

>>> main(('460', '600', '6', '7'))
'32813516'

>>> main(('231', '86', '6', '7'))
'32550119'

>>> main(('235', '527', '5', '5'))
'23863019'

>>> main(('343', '1011', '6', '1'))
'7858007'

Вариант №28

Задача №8

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

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

Десятичная строка.
0 3 4 10 11 16 Q1 Q2 17 18 19 27 28 32 Q4 Q5 Q6

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

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

Тесты:

>>> main('370739026')
{'Q1': '2', 'Q2': '117', 'Q4': '0', 'Q5': '195', 'Q6': '1'}

>>> main('6691154963')
{'Q1': '3', 'Q2': '65', 'Q4': '1', 'Q5': '474', 'Q6': '24'}

>>> main('7755188879')
{'Q1': '15', 'Q2': '40', 'Q4': '3', 'Q5': '455', 'Q6': '28'}

>>> main('7059343388')
{'Q1': '12', 'Q2': '1', 'Q4': '2', 'Q5': '152', 'Q6': '26'}

Вариант №29

Задача №8

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

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

Шестнадцатиричная строка.
0 9 10 14 15 22 23 25 26 K1 K2 K3 K4 K5

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

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

Тесты:

>>> main('0x3cd4e6e')
{'K1': '0x26e', 'K2': '0x13', 'K3': '0x9a', 'K4': '0x7', 'K5': '0x0'}

>>> main('0x409f90f')
{'K1': '0x10f', 'K2': '0x1e', 'K3': '0x13', 'K4': '0x0', 'K5': '0x1'}

>>> main('0x496b46e')
{'K1': '0x6e', 'K2': '0xd', 'K3': '0x2d', 'K4': '0x1', 'K5': '0x1'}

>>> main('0x3d8ffe0')
{'K1': '0x3e0', 'K2': '0x1f', 'K3': '0xb1', 'K4': '0x7', 'K5': '0x0'}

Вариант №30

Задача №8

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

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

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

0 8 9 16 17 20 21 26 N2 N3 N4

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

Целое.

0 5 6 14 15 18 19 26 N4 N3 N2

Тесты:

>>> main('0x31ea0cb')
42434584

>>> main('0x33c5a87')
24051737

>>> main('0x6108815')
35913776

>>> main('0x864e32')
20545540

Вариант №31

Задача №8

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

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

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

0 2 3 12 13 18 19 23 T1 T2 T3 T4

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

Целое.

0 9 10 12 13 17 18 23 T2 T1 T4 T3

Тесты:

>>> main('9937848')
16138359

>>> main('14263646')
3635371

>>> main('14805751')
4169054

>>> main('14640200')
15687817

Вариант №32

Задача №8

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

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

Десятичная строка.
0 7 8 10 11 20 21 28 H1 H2 H3 H4

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

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

Тесты:

>>> main('261434789')
('165', '5', '677', '124')

>>> main('445008544')
('160', '2', '201', '212')

>>> main('455011965')
('125', '6', '989', '216')

>>> main('427533978')
('154', '6', '884', '203')

Вариант №33

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 15 16 18 19 28 R1 R2 R3 R4

Тесты:

>>> main([('R1', '0x4a'), ('R2', '0xef'), ('R3', '0x6'), ('R4', '0x212')])
'0x1096ef4a'

>>> main([('R1', '0x7a'), ('R2', '0xae'), ('R3', '0x3'), ('R4', '0x112')])
'0x893ae7a'

>>> main([('R1', '0x4a'), ('R2', '0x13'), ('R3', '0x6'), ('R4', '0x13e')])
'0x9f6134a'

>>> main([('R1', '0xca'), ('R2', '0xe3'), ('R3', '0x5'), ('R4', '0x10e')])
'0x875e3ca'

Вариант №34

Задача №8

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

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

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

0 1 10 11 17 18 25 26 28 29 30 Q1 Q2 Q3 Q4 Q5 Q6

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

Целое.

0 2 3 4 5 11 12 21 22 29 30 Q5 Q6 Q3 Q2 Q4 Q1

Тесты:

>>> main('0x580faead')
1089826486

>>> main('0x5d30979c')
322757207

>>> main('0x4b3c3ff3')
1946128626

>>> main('0x66f59747')
1870280281

Вариант №35

Задача №8

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

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

Шестнадцатиричная строка.
0 3 4 5 6 7 13 N1 N2 N4

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

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

Тесты:

>>> main('0x396f')
{'N1': '15', 'N2': '2', 'N4': '114'}

>>> main('0x1b22')
{'N1': '2', 'N2': '2', 'N4': '54'}

>>> main('0x3387')
{'N1': '7', 'N2': '0', 'N4': '103'}

>>> main('0x2fc3')
{'N1': '3', 'N2': '0', 'N4': '95'}

Вариант №36

Задача №8

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

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

Десятичная строка.
0 8 9 16 17 24 25 30 S1 S2 S3 S4

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

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

Тесты:

>>> main('385378969')
{'S1': '0x99', 'S2': '0x35', 'S3': '0x7c', 'S4': '0xb'}

>>> main('1688640785')
{'S1': '0x111', 'S2': '0x4e', 'S3': '0x53', 'S4': '0x32'}

>>> main('2058377738')
{'S1': '0xa', 'S2': '0x2d', 'S3': '0x58', 'S4': '0x3d'}

>>> main('320112818')
{'S1': '0xb2', 'S2': '0x44', 'S3': '0x8a', 'S4': '0x9'}

Вариант №37

Задача №8

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

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

Целое.

0 6 7 14 15 18 19 22 23 30 I1 I2 I4 I5

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

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

0 3 4 10 11 18 19 22 23 30 I1 I2 I4 I5

Тесты:

>>> main(2020085635)
'0x7868f830'

>>> main(1051860972)
'0x3eb1fec0'

>>> main(1182040119)
'0x46700370'

>>> main(1899990752)
'0x7138ee00'

Вариант №38

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 11 16 17 18 V2 V3 V4 19 26 27 36 37 V4 V5 V6

Тесты:

>>> main([('V2', 1), ('V3', 9), ('V4', 653), ('V5', 60), ('V6', 1)])
'145577626624'

>>> main([('V2', 1), ('V3', 15), ('V4', 84), ('V5', 127), ('V6', 0)])
'17056693248'

>>> main([('V2', 1), ('V3', 6), ('V4', 470), ('V5', 65), ('V6', 1)])
'146224722944'

>>> main([('V2', 0), ('V3', 51), ('V4', 679), ('V5', 128), ('V6', 0)])
'17268971520'

Вариант №39

Задача №8

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

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

Целое.
0 4 5 8 9 10 11 13 Q1 Q2 Q3 Q4

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

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

Тесты:

>>> main(15246)
{'Q1': '14', 'Q2': '12', 'Q3': '1', 'Q4': '7'}

>>> main(11857)
{'Q1': '17', 'Q2': '2', 'Q3': '3', 'Q4': '5'}

>>> main(4808)
{'Q1': '8', 'Q2': '6', 'Q3': '1', 'Q4': '2'}

>>> main(10475)
{'Q1': '11', 'Q2': '7', 'Q3': '0', 'Q4': '5'}

Вариант №40

Задача №8

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

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

Целое.
0 8 9 17 J1 J2 18 25 26 27 28 34 J3 J4 J5

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

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

Тесты:

>>> main(12363967109)
[('J1', '133'), ('J2', '405'), ('J3', '60'), ('J4', '0'), ('J5', '46')]

>>> main(4785804058)
[('J1', '282'), ('J2', '201'), ('J3', '80'), ('J4', '3'), ('J5', '17')]

>>> main(33970894162)
[('J1', '338'), ('J2', '346'), ('J3', '52'), ('J4', '2'), ('J5', '126')]

>>> main(29140984522)
[('J1', '202'), ('J2', '17'), ('J3', '60'), ('J4', '2'), ('J5', '108')]