ИВБО-08-22

Вариант №1

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 14 15 20 21 27 C2 C3 C4

Тесты:

>>> main(('123', '23', '29'))
'0x3abfb00'

>>> main(('81', '39', '8'))
'0x113d100'

>>> main(('22', '28', '38'))
'0x4ce1600'

>>> main(('33', '34', '73'))
'0x9312100'

Вариант №2

Задача №8

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

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

Целое.
0 5 6 11 12 13 14 15 R1 R3 R4 R5

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

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

Тесты:

>>> main(39794)
(50, 1, 0, 1)

>>> main(37766)
(6, 1, 0, 1)

>>> main(37027)
(35, 1, 0, 1)

>>> main(48216)
(24, 1, 1, 1)

Вариант №3

Задача №8

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

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

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

0 6 7 8 9 14 15 17 S1 S2 S4 18 24 25 34 S4 S5

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

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

0 6 7 12 13 17 S1 S4 18 22 23 32 33 34 S4 S5 S2

Тесты:

>>> main('20615484207')
'0x53331c02f'

>>> main('34199898550')
'0x7fd9e4036'

>>> main('9370255673')
'0x48ba0a039'

>>> main('18208153271')
'0x30f528037'

Вариант №4

Задача №8

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

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

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

0 6 7 11 12 14 15 20 V1 V2 V3 V4

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

Целое.

0 2 3 7 8 13 14 20 V3 V2 V4 V1

Тесты:

>>> main('1045443')
1105727

>>> main('1660620')
1258093

>>> main('1605470')
1552631

>>> main('638658')
1086443

Вариант №5

Задача №8

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

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

Целое.

0 5 6 11 12 16 17 23 24 25 27 C1 C2 C4 C5 C6

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

Целое.

0 6 7 12 13 17 18 19 21 22 27 C4 C2 C5 C6 C1

Тесты:

>>> main(210261056)
3147972

>>> main(264405713)
75236833

>>> main(27333180)
251921488

>>> main(131729036)
52170093

Вариант №6

Задача №8

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

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

Десятичная строка.
0 2 3 4 5 14 15 19 20 21 22 24 L1 L2 L4 L5 L6

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

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

Тесты:

>>> main('16776811')
[('L1', 3), ('L2', 1), ('L4', 31), ('L5', 3), ('L6', 3)]

>>> main('30837450')
[('L1', 2), ('L2', 1), ('L4', 13), ('L5', 1), ('L6', 7)]

>>> main('671228')
[('L1', 4), ('L2', 3), ('L4', 20), ('L5', 0), ('L6', 0)]

>>> main('22680555')
[('L1', 3), ('L2', 1), ('L4', 20), ('L5', 1), ('L6', 5)]

Вариант №7

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 9 10 16 U1 U2 17 19 20 25 26 32 33 U2 U3 U4

Тесты:

>>> main([('U1', '0x3da'), ('U2', '0x1f2'), ('U3', '0x30'), ('U4', '0x5')])
'0x1707cbda'

>>> main([('U1', '0x2f3'), ('U2', '0x5d'), ('U3', '0x2e'), ('U4', '0x7c')])
'0x1f2e176f3'

>>> main([('U1', '0x35'), ('U2', '0x8b'), ('U3', '0x13'), ('U4', '0x5f')])
'0x17d322c35'

>>> main([('U1', '0x20f'), ('U2', '0x41'), ('U3', '0x30'), ('U4', '0x58')])
'0x16301060f'

Вариант №8

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 9 10 18 O1 O2 19 20 25 26 34 35 37 O2 O4 O5

Тесты:

>>> main(('0x5a', '0x192', '0x13e', '0x5'))
'0x2cf806485a'

>>> main(('0x4c', '0x38f', '0x169', '0x2'))
'0x15a40e3c4c'

>>> main(('0x32d', '0x250', '0xf', '0x4'))
'0x203c09432d'

>>> main(('0xbc', '0x37b', '0x13e', '0x0'))
'0x4f80decbc'

Вариант №9

Задача №8

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

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

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

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

Целое.
0 3 4 11 12 16 17 21 22 24 25 30 V1 V2 V3 V4 V5 V6

Тесты:

>>> main([('V1', '8'), ('V2', '86'), ('V3', '23'), ('V4', '12'), ('V5', '1'), ('V6', '4')])
140080488

>>> main([('V1', '9'), ('V2', '85'), ('V3', '0'), ('V4', '10'), ('V5', '5'), ('V6', '62')])
2102658393

>>> main([('V1', '4'), ('V2', '115'), ('V3', '21'), ('V4', '8'), ('V5', '1'), ('V6', '16')])
542201652

>>> main([('V1', '6'), ('V2', '18'), ('V3', '29'), ('V4', '22'), ('V5', '7'), ('V6', '38')])
1307431206

Вариант №10

Задача №8

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

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

Целое.

0 7 8 16 17 20 I1 I2 I3 21 24 25 34 35 41 I3 I4 I5

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

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

0 7 8 14 15 20 I1 I5 I3 21 22 23 31 32 41 I3 I2 I4

Тесты:

>>> main(873183797746)
'0x1a6b0f399f2'

>>> main(3518740474173)
'0x1a254d1e63d'

>>> main(3173459040670)
'0x1700cb9dc9e'

>>> main(948518560203)
'0x26c50871bcb'

Вариант №11

Задача №8

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

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

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

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

Целое.
0 8 9 12 13 14 16 T1 T2 T3 T4

Тесты:

>>> main(('116', '7', '0', '2'))
36468

>>> main(('447', '13', '1', '0'))
15295

>>> main(('345', '10', '0', '6'))
103769

>>> main(('377', '13', '0', '7'))
121721

Вариант №12

Задача №8

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

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

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

0 6 7 16 17 22 T1 T2 T3 23 25 26 34 35 39 40 45 T3 T4 T5 T6

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

Целое.

0 9 10 18 19 22 T2 T4 T3 23 27 28 34 35 39 40 45 T3 T1 T5 T6

Тесты:

>>> main('50628239295926')
50626539277323

>>> main('13645362695529')
13669202726426

>>> main('25121831857362')
25139105309273

>>> main('43617600578353')
43615902204230

Вариант №13

Задача №8

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

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

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

0 1 9 10 14 15 23 24 25 27 F1 F3 F4 F5 F6

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

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

0 1 9 10 18 19 20 24 25 27 F1 F4 F5 F3 F6

Тесты:

>>> main('0xfc54e43')
'0xf3e2801'

>>> main('0xb40fd09')
'0xbfa0401'

>>> main('0xd314898')
'0xd298800'

>>> main('0xa5dd62d')
'0xb52ec01'

Вариант №14

Задача №8

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

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

Целое.

0 4 5 10 11 12 18 19 23 24 28 W1 W2 W3 W4 W5 W6

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

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

0 1 5 6 10 11 15 16 21 22 28 W3 W6 W1 W5 W2 W4

Тесты:

>>> main(483341771)
'0x1ceecaf8'

>>> main(276617558)
'0x134a7da1'

>>> main(449969473)
'0x7ead075'

>>> main(101427877)
'0xe95094d'

Вариант №15

Задача №8

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

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

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

0 2 3 5 6 10 11 12 13 19 20 X1 X2 X3 X5 X6

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

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

0 1 5 6 8 9 10 11 13 14 20 X6 X3 X1 X2 X5

Тесты:

>>> main('0x213ec')
'0x4291e'

>>> main('0x1eebb3')
'0x1df0dd'

>>> main('0x146c4b')
'0x8c8e3'

>>> main('0xa25f1')
'0x14706e'

Вариант №16

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 12 13 19 W1 W2 W3 20 21 30 31 39 W3 W4 W5

Тесты:

>>> main([('W1', 237), ('W2', 27), ('W3', 246), ('W4', 476), ('W5', 47)])
'0x17bb9edbed'

>>> main([('W1', 19), ('W2', 27), ('W3', 167), ('W4', 716), ('W5', 462)])
'0xe75994fb13'

>>> main([('W1', 193), ('W2', 18), ('W3', 165), ('W4', 479), ('W5', 44)])
'0x163bf4b2c1'

>>> main([('W1', 109), ('W2', 22), ('W3', 132), ('W4', 768), ('W5', 485)])
'0xf2e010966d'

Вариант №17

Задача №8

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

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

Шестнадцатиричная строка.
0 4 5 11 12 17 C1 C2 C3 18 21 22 25 26 35 C3 C4 C5

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

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

Тесты:

>>> main('0xa4d515069')
(9, 3, 277, 5, 659)

>>> main('0x2ccc3c881')
(1, 68, 60, 3, 179)

>>> main('0x50306e101')
(1, 8, 110, 12, 320)

>>> main('0x4ac23d0b8')
(24, 5, 573, 0, 299)

Вариант №18

Задача №8

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

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

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

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

Десятичная строка.
0 5 6 15 16 18 A1 A3 19 23 24 33 34 36 A3 A4 A5

Тесты:

>>> main([('A1', 10), ('A3', 104), ('A4', 529), ('A5', 5)])
'94781308938'

>>> main([('A1', 2), ('A3', 164), ('A4', 53), ('A5', 7)])
'121159024642'

>>> main([('A1', 1), ('A3', 118), ('A4', 880), ('A5', 3)])
'66311290881'

>>> main([('A1', 43), ('A3', 247), ('A4', 532), ('A5', 5)])
'94841012267'

Вариант №19

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 3 4 11 12 13 14 15 17 M1 M2 M3 M4

Тесты:

>>> main({'M1': 15, 'M2': 157, 'M3': 0, 'M4': 0})
'0x9df'

>>> main({'M1': 0, 'M2': 224, 'M3': 0, 'M4': 0})
'0xe00'

>>> main({'M1': 3, 'M2': 89, 'M3': 0, 'M4': 0})
'0x593'

>>> main({'M1': 1, 'M2': 235, 'M3': 1, 'M4': 3})
'0x7eb1'

Вариант №20

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 13 14 16 17 18 19 28 J1 J2 J3 J4 J5

Тесты:

>>> main(('454', '4', '5', '1', '726'))
'380850630'

>>> main(('399', '8', '1', '3', '458'))
'240542095'

>>> main(('469', '10', '2', '3', '229'))
'120498645'

>>> main(('991', '0', '6', '2', '811'))
'425559007'

Вариант №21

Задача №8

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

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

Целое.
0 7 8 13 14 15 G1 G2 G3 16 17 26 27 30 31 G3 G4 G5 G6

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

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

Тесты:

>>> main(2024573999)
[('G1', '47'), ('G2', '12'), ('G3', '2'), ('G4', '86'), ('G5', '15'), ('G6', '0')]

>>> main(294258957)
[('G1', '13'), ('G2', '9'), ('G3', '0'), ('G4', '197'), ('G5', '2'), ('G6', '0')]

>>> main(2228685676)
[('G1', '108'), ('G2', '11'), ('G3', '4'), ('G4', '619'), ('G5', '0'), ('G6', '1')]

>>> main(565145637)
[('G1', '37'), ('G2', '48'), ('G3', '5'), ('G4', '215'), ('G5', '4'), ('G6', '0')]

Вариант №22

Задача №8

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

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

Целое.

0 8 9 11 12 19 20 29 A1 A3 A4

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

Целое.

0 2 3 10 11 19 20 29 A3 A1 A4

Тесты:

>>> main(759961354)
759715336

>>> main(622794443)
622223240

>>> main(389074901)
389982304

>>> main(140533530)
141086760

Вариант №23

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 6 7 9 10 16 17 26 K1 K2 K3 K4

Тесты:

>>> main(('0x6f', '0x2', '0xf', '0x18b'))
'0x3163d6f'

>>> main(('0x6f', '0x7', '0x2', '0x90'))
'0x1200bef'

>>> main(('0x41', '0x0', '0x5f', '0x315'))
'0x62b7c41'

>>> main(('0x7c', '0x3', '0x3b', '0x5'))
'0xaedfc'

Вариант №24

Задача №8

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

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

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

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

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

Тесты:

>>> main([('P2', '0x1'), ('P3', '0x0'), ('P4', '0x2'), ('P5', '0x1c1')])
'0x706200'

>>> main([('P2', '0x0'), ('P3', '0x1'), ('P4', '0x1'), ('P5', '0xa0')])
'0x281800'

>>> main([('P2', '0x3'), ('P3', '0x1'), ('P4', '0x1'), ('P5', '0x5a')])
'0x169e00'

>>> main([('P2', '0x2'), ('P3', '0x1'), ('P4', '0x3'), ('P5', '0xc7')])
'0x31fc00'

Вариант №25

Задача №8

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

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

Десятичная строка.
0 3 4 5 9 10 17 18 26 27 J1 J2 J3 J5 J6

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

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

Тесты:

>>> main('54821715')
[('J1', '3'), ('J2', '1'), ('J3', '26'), ('J5', '209'), ('J6', '0')]

>>> main('141842637')
[('J1', '13'), ('J2', '0'), ('J3', '6'), ('J5', '29'), ('J6', '1')]

>>> main('85262813')
[('J1', '13'), ('J2', '1'), ('J3', '14'), ('J5', '325'), ('J6', '0')]

>>> main('249153708')
[('J1', '12'), ('J2', '0'), ('J3', '5'), ('J5', '438'), ('J6', '1')]

Вариант №26

Задача №8

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

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

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

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

Десятичная строка.
0 7 8 10 11 18 S1 S2 S3 19 20 21 26 27 36 S3 S4

Тесты:

>>> main([('S1', '0x87'), ('S2', '0x1'), ('S3', '0x3e3'), ('S4', '0x19')])
'54466951'

>>> main([('S1', '0x19'), ('S2', '0x1'), ('S3', '0x1dd'), ('S4', '0x10')])
'34531609'

>>> main([('S1', '0x78'), ('S2', '0x2'), ('S3', '0x3e'), ('S4', '0x34')])
'109179512'

>>> main([('S1', '0xa5'), ('S2', '0x6'), ('S3', '0x322'), ('S4', '0x3d')])
'129570469'

Вариант №27

Задача №8

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

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

Целое.
0 1 2 3 6 7 11 Y2 Y3 Y4

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

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

Тесты:

>>> main(1740)
{'Y2': '0x1', 'Y3': '0x9', 'Y4': '0xd'}

>>> main(1429)
{'Y2': '0x1', 'Y3': '0x2', 'Y4': '0xb'}

>>> main(1669)
{'Y2': '0x1', 'Y3': '0x0', 'Y4': '0xd'}

>>> main(2955)
{'Y2': '0x0', 'Y3': '0x1', 'Y4': '0x17'}

Вариант №28

Задача №8

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

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

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

0 6 7 10 11 13 14 15 F1 F2 F3 F4 16 23 24 26 27 31 F4 F5 F6

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

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

0 2 3 12 13 15 F3 F4 F1 16 19 20 23 24 28 29 31 F1 F2 F6 F5

Тесты:

>>> main('0x2d769f9e')
'2784218835'

>>> main('0x7b9fe0e4')
'1864143868'

>>> main('0x46fbcd15')
'3366109049'

>>> main('0xe7adcdd')
'3248205659'

Вариант №29

Задача №8

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

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

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

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

Десятичная строка.
0 3 4 8 9 13 14 17 18 21 T1 T2 T3 T4 T5

Тесты:

>>> main([('T1', '0xc'), ('T2', '0x2'), ('T3', '0x1'), ('T4', '0x6'), ('T5', '0xd')])
'3506732'

>>> main([('T1', '0xa'), ('T2', '0x16'), ('T3', '0x6'), ('T4', '0x2'), ('T5', '0x8')])
'2133354'

>>> main([('T1', '0x4'), ('T2', '0x2'), ('T3', '0x16'), ('T4', '0x1'), ('T5', '0x3')])
'814116'

>>> main([('T1', '0x0'), ('T2', '0x0'), ('T3', '0xe'), ('T4', '0xb'), ('T5', '0xe')])
'3857408'

Вариант №30

Задача №8

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

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

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

0 8 9 17 18 19 20 Y1 Y2 Y3 Y4 21 30 31 40 Y5 Y6

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

Целое.

0 8 9 10 11 20 Y2 Y3 Y5 21 22 31 32 40 Y4 Y6 Y1

Тесты:

>>> main('0x16709f76021')
144747690928

>>> main('0x40fc6d5076')
507349245608

>>> main('0x1bf86032ef8')
1068905890199

>>> main('0x5794332a66')
438823094677

Вариант №31

Задача №8

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

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

Целое.

0 5 6 11 12 20 21 22 K1 K2 K4

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

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

0 1 2 7 8 13 14 22 K4 K1 K2

Тесты:

>>> main(5846756)
'0x1b92'

>>> main(7663781)
'0x297'

>>> main(4927628)
'0x232'

>>> main(6200083)
'0x2c4e'

Вариант №32

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 17 18 20 D1 D3 21 30 31 38 39 40 D4 D5 D6

Тесты:

>>> main(('628', '2', '789', '114', '1'))
'796224127604'

>>> main(('401', '1', '802', '220', '2'))
'1573640208785'

>>> main(('438', '7', '695', '86', '1'))
'735898763702'

>>> main(('242', '1', '972', '161', '0'))
'347783561458'

Вариант №33

Задача №8

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

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

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

0 1 4 5 8 9 13 14 15 21 R1 R2 R3 R4 R5 R6

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

Целое.

0 4 5 8 9 10 13 14 20 21 R4 R2 R5 R3 R6 R1

Тесты:

>>> main('372090')
191926

>>> main('264370')
136484

>>> main('3959108')
1976916

>>> main('2546051')
3371564

Вариант №34

Задача №8

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

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

Десятичная строка.
0 4 5 6 14 15 E1 E2 E3 E4

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

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

Тесты:

>>> main('2968')
(24, 0, 46, 0)

>>> main('7925')
(21, 1, 123, 0)

>>> main('11006')
(30, 1, 171, 0)

>>> main('30238')
(30, 0, 472, 0)

Вариант №35

Задача №8

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

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

Шестнадцатиричная строка.
0 7 8 10 11 12 13 15 16 20 21 23 H1 H2 H3 H4 H5 H6

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

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

Тесты:

>>> main('0xd1e1bf')
('0xbf', '0x1', '0x0', '0x7', '0x11', '0x6')

>>> main('0xdde783')
('0x83', '0x7', '0x0', '0x7', '0x1d', '0x6')

>>> main('0x9036e9')
('0xe9', '0x6', '0x2', '0x1', '0x10', '0x4')

>>> main('0xeaddb7')
('0xb7', '0x5', '0x3', '0x6', '0xa', '0x7')

Вариант №36

Задача №8

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

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

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

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

Целое.
0 3 4 13 14 18 C1 C3 19 25 26 29 30 37 C4 C5 C6

Тесты:

>>> main([('C1', 4), ('C3', 14), ('C4', 60), ('C5', 4), ('C6', 184)])
197868617732

>>> main([('C1', 12), ('C3', 29), ('C4', 95), ('C5', 7), ('C6', 167)])
179834929164

>>> main([('C1', 1), ('C3', 5), ('C4', 95), ('C5', 3), ('C6', 158)])
169902424065

>>> main([('C1', 11), ('C3', 23), ('C4', 92), ('C5', 6), ('C6', 18)])
19778617355

Вариант №37

Задача №8

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

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

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

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

Десятичная строка.
0 7 8 17 18 21 22 25 26 29 E1 E2 E3 E4 E5

Тесты:

>>> main([('E1', '0x82'), ('E2', '0x30f'), ('E3', '0x5'), ('E4', '0x5'), ('E5', '0x9')])
'626462594'

>>> main([('E1', '0xf1'), ('E2', '0x341'), ('E3', '0xe'), ('E4', '0x3'), ('E5', '0x1')])
'83575281'

>>> main([('E1', '0xc1'), ('E2', '0x142'), ('E3', '0x7'), ('E4', '0xe'), ('E5', '0x6')])
'463291073'

>>> main([('E1', '0xa8'), ('E2', '0x151'), ('E3', '0x8'), ('E4', '0xe'), ('E5', '0x1')])
'128012712'

Вариант №38

Задача №8

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

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

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

0 2 3 7 8 12 13 18 S2 S3 S4

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

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

0 5 6 10 11 15 16 18 S4 S2 S3

Тесты:

>>> main('0x21b3d')
'0xd9d0'

>>> main('0x6433')
'0x2183'

>>> main('0x16fb7')
'0x7d8b'

>>> main('0x2b280')
'0x9415'

Вариант №39

Задача №8

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

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

Целое.
0 5 6 11 12 18 19 20 U1 U2 U3 U4

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

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

Тесты:

>>> main(547913)
{'U1': '9', 'U2': '49', 'U3': '5', 'U4': '1'}

>>> main(1523330)
{'U1': '2', 'U2': '58', 'U3': '115', 'U4': '2'}

>>> main(1547976)
{'U1': '8', 'U2': '59', 'U3': '121', 'U4': '2'}

>>> main(679552)
{'U1': '0', 'U2': '58', 'U3': '37', 'U4': '1'}

Вариант №40

Задача №8

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

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

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

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

Десятичная строка.
0 6 7 13 14 15 20 21 23 Y1 Y2 Y3 Y4 Y5

Тесты:

>>> main([('Y1', '112'), ('Y2', '96'), ('Y3', '1'), ('Y4', '45'), ('Y5', '0')])
'1503344'

>>> main([('Y1', '62'), ('Y2', '52'), ('Y3', '0'), ('Y4', '14'), ('Y5', '3')])
'6756926'

>>> main([('Y1', '122'), ('Y2', '65'), ('Y3', '0'), ('Y4', '52'), ('Y5', '3')])
'8003834'

>>> main([('Y1', '60'), ('Y2', '17'), ('Y3', '1'), ('Y4', '58'), ('Y5', '1')])
'4016316'