ИКБО-05-22

Вариант №1

Задача №8

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

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

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

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

Целое.
0 6 7 10 11 18 19 22 Y1 Y2 Y3 Y4

Тесты:

>>> main(('0x24', '0xa', '0x99', '0xc'))
6606116

>>> main(('0x7b', '0x4', '0xe9', '0x1'))
1002107

>>> main(('0x35', '0x9', '0xd9', '0x0'))
445621

>>> main(('0x1b', '0xd', '0xef', '0x8'))
4685467

Вариант №2

Задача №8

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

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

Шестнадцатиричная строка.
0 6 7 14 15 20 21 T1 T2 T3 T4 22 25 26 32 33 42 T4 T5 T6

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

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

Тесты:

>>> main('0x3079a94a639')
('0x39', '0x4c', '0x29', '0x14', '0x66', '0x183')

>>> main('0x7324d2e13d3')
('0x53', '0x27', '0x1c', '0x9', '0x13', '0x399')

>>> main('0x2ab7d7184d5')
('0x55', '0x9', '0x23', '0xb', '0x5f', '0x155')

>>> main('0x5b22719f141')
('0x41', '0xe2', '0x33', '0x18', '0x9', '0x2d9')

Вариант №3

Задача №8

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

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

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

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

Десятичная строка.
0 9 10 16 W1 W2 17 18 19 27 28 33 W2 W3 W4 W5

Тесты:

>>> main((649, 108, 1, 275, 61))
'16519115401'

>>> main((223, 3, 0, 197, 16))
'4398255327'

>>> main((358, 244, 0, 163, 57))
'15386530150'

>>> main((149, 112, 0, 402, 51))
'13901086869'

Вариант №4

Задача №8

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

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

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

0 4 5 13 14 17 18 19 20 26 B1 B3 B4 B5

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

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

0 4 5 13 14 20 21 22 23 26 B1 B5 B4 B3

Тесты:

>>> main('0x3899780')
'0x34e0000'

>>> main('0x6e8c650')
'0x1db8010'

>>> main('0x2381a5a')
'0x48c01a'

>>> main('0x5fbf532')
'0x7d7c012'

Вариант №5

Задача №8

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

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

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

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

Десятичная строка.
0 4 5 6 12 13 21 22 28 29 G1 G2 G3 G4 G6

Тесты:

>>> main(('0x1d', '0x0', '0x74', '0x4e', '0x1'))
'537517341'

>>> main(('0xf', '0x0', '0x7d', '0xa8', '0x1'))
'538255183'

>>> main(('0x15', '0x0', '0x7e', '0x148', '0x1'))
'539565973'

>>> main(('0x9', '0x0', '0x79', '0x1e7', '0x1'))
'540868169'

Вариант №6

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 6 7 13 14 15 24 25 27 P2 P3 P4 P5

Тесты:

>>> main(('117', '0', '776', '2'))
'0x5843a80'

>>> main(('36', '1', '848', '3'))
'0x7a85200'

>>> main(('116', '1', '162', '6'))
'0xc517a00'

>>> main(('82', '0', '629', '0'))
'0x13aa900'

Вариант №7

Задача №8

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

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

Целое.

0 6 7 15 16 Y1 Y3 17 23 24 32 Y3 Y4

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

Целое.

0 8 9 16 Y3 17 25 26 32 Y4 Y1

Тесты:

>>> main(3972968391)
4795767808

>>> main(705025441)
2220100096

>>> main(8345974249)
7111633408

>>> main(6634119180)
857135104

Вариант №8

Задача №8

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

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

Целое.
0 7 8 10 11 13 14 19 20 22 H1 H2 H4 H5

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

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

Тесты:

>>> main(8074224)
(240, 3, 44, 7)

>>> main(2892295)
(7, 2, 48, 2)

>>> main(2769611)
(203, 2, 41, 2)

>>> main(7846937)
(25, 4, 30, 7)

Вариант №9

Задача №8

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

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

Целое.

0 8 9 10 19 20 24 O1 O3 O4

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

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

0 9 10 11 19 20 24 O3 O1 O4

Тесты:

>>> main(28623666)
'28938544'

>>> main(23548328)
'23937492'

>>> main(29616608)
'30343418'

>>> main(32023745)
'31853097'

Вариант №10

Задача №8

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

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

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

0 1 2 3 4 7 8 10 11 12 13 P1 P2 P3 P4 P6

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

Целое.

0 1 2 3 4 5 8 9 10 11 13 P2 P6 P3 P1 P4

Тесты:

>>> main('0x1392')
7460

>>> main('0x1cab')
10054

>>> main('0x181f')
1575

>>> main('0x32dd')
5039

Вариант №11

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 4 5 6 7 15 16 O1 O2 O3 O4

Тесты:

>>> main({'O1': 29, 'O2': 0, 'O3': 75, 'O4': 0})
'0x259d'

>>> main({'O1': 1, 'O2': 3, 'O3': 30, 'O4': 1})
'0x10f61'

>>> main({'O1': 30, 'O2': 2, 'O3': 167, 'O4': 1})
'0x153de'

>>> main({'O1': 11, 'O2': 3, 'O3': 54, 'O4': 1})
'0x11b6b'

Вариант №12

Задача №8

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

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

Целое.

0 7 8 11 12 15 J1 J2 J3 16 21 22 31 J4 J5

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

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

0 7 8 13 14 15 J1 J4 J5 16 23 24 27 28 31 J5 J2 J3

Тесты:

>>> main(1996225735)
'4235656135'

>>> main(1676703445)
'1986261205'

>>> main(1751921049)
'828927129'

>>> main(127424916)
'1493670036'

Вариант №13

Задача №8

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

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

Целое.
0 6 7 8 9 10 11 Y1 Y2 Y3 Y4

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

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

Тесты:

>>> main(2949)
('0x5', '0x3', '0x1', '0x1')

>>> main(4082)
('0x72', '0x3', '0x3', '0x1')

>>> main(1741)
('0x4d', '0x1', '0x3', '0x0')

>>> main(3896)
('0x38', '0x2', '0x3', '0x1')

Вариант №14

Задача №8

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

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

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

0 8 9 15 16 22 23 24 B1 B2 B3 B4 25 32 33 40 41 49 B4 B5 B6

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

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

0 8 9 18 19 24 B6 B4 B5 25 26 27 33 34 40 41 49 B5 B2 B3 B1

Тесты:

>>> main('866219536911713')
'777553216917385'

>>> main('237677823181440')
'282450079692908'

>>> main('1020482267884720')
'387366061485520'

>>> main('526748850330339')
'499661132339439'

Вариант №15

Задача №8

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

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

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

0 6 7 8 9 12 13 16 O1 O3 O4

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

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

0 6 7 10 11 12 13 16 O1 O3 O4

Тесты:

>>> main('50999')
'0xc1b7'

>>> main('32313')
'0x67b9'

>>> main('120701')
'0x1c5fd'

>>> main('17043')
'0x4093'

Вариант №16

Задача №8

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

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

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

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

Целое.
0 2 3 4 12 13 18 Q1 Q2 Q4

Тесты:

>>> main([('Q1', '0x5'), ('Q2', '0x1'), ('Q4', '0x24')])
294925

>>> main([('Q1', '0x6'), ('Q2', '0x1'), ('Q4', '0x37')])
450574

>>> main([('Q1', '0x2'), ('Q2', '0x1'), ('Q4', '0x11')])
139274

>>> main([('Q1', '0x1'), ('Q2', '0x1'), ('Q4', '0x38')])
458761

Вариант №17

Задача №8

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

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

Целое.

0 5 6 12 13 15 Q1 Q2 Q3 16 17 18 21 22 30 31 Q3 Q4 Q5 Q6

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

Целое.

0 6 7 12 13 15 Q2 Q1 Q3 16 17 18 21 22 30 31 Q3 Q4 Q5 Q6

Тесты:

>>> main(2302209906)
2302212413

>>> main(2748520992)
2748518504

>>> main(267245522)
267241823

>>> main(3207727929)
3207732396

Вариант №18

Задача №8

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

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

Целое.

0 5 6 15 16 20 W1 W2 W3 21 22 23 32 33 41 W3 W4 W5

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

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

0 9 10 16 17 20 W2 W3 W4 21 26 27 35 36 41 W4 W5 W1

Тесты:

>>> main(2845355421173)
'0x35a59f198b7'

>>> main(1267387700840)
'0x2849c58c659'

>>> main(1128638985305)
'0x1941b2080d1'

>>> main(2522920964062)
'0x1e92da73b3f'

Вариант №19

Задача №8

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

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

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

0 2 3 12 13 14 15 22 23 27 28 30 Q1 Q2 Q3 Q4 Q6

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

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

0 1 2 4 5 7 8 17 18 25 26 30 Q3 Q1 Q6 Q2 Q4

Тесты:

>>> main('1500894400')
'61773986'

>>> main('1832911713')
'33582276'

>>> main('1375398899')
'64323247'

>>> main('1755332391')
'17032413'

Вариант №20

Задача №8

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

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

Шестнадцатиричная строка.
0 2 3 8 9 17 18 27 V1 V2 V3 V4

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

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

Тесты:

>>> main('0x24d0a3d')
[('V1', '5'), ('V2', '7'), ('V3', '133'), ('V4', '147')]

>>> main('0xea89583')
[('V1', '3'), ('V2', '48'), ('V3', '74'), ('V4', '938')]

>>> main('0x56fdc30')
[('V1', '0'), ('V2', '6'), ('V3', '494'), ('V4', '347')]

>>> main('0x3953a66')
[('V1', '6'), ('V2', '12'), ('V3', '157'), ('V4', '229')]

Вариант №21

Задача №8

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

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

Целое.
0 8 9 17 18 19 21 22 23 24 25 K1 K2 K3 K4 K5 K6

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

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

Тесты:

>>> main(4430898)
('0x32', '0x1ce', '0x0', '0x0', '0x1', '0x0')

>>> main(44687799)
('0x1b7', '0xf0', '0x0', '0x5', '0x2', '0x2')

>>> main(42993798)
('0x86', '0x4', '0x0', '0x2', '0x2', '0x2')

>>> main(59902640)
('0xb0', '0x105', '0x0', '0x2', '0x2', '0x3')

Вариант №22

Задача №8

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

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

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

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

Целое.
0 7 8 15 16 18 S1 S2 S3 19 20 26 27 36 S3 S4 S5

Тесты:

>>> main([('S1', '0x7d'), ('S2', '0x5e'), ('S3', '0x5'), ('S4', '0x70'), ('S5', '0x313')])
105747144317

>>> main([('S1', '0xd'), ('S2', '0xc9'), ('S3', '0xc'), ('S4', '0x65'), ('S5', '0x2eb')])
100367386893

>>> main([('S1', '0xe8'), ('S2', '0xb7'), ('S3', '0x5'), ('S4', '0x18'), ('S5', '0x7c')])
16668538856

>>> main([('S1', '0xc2'), ('S2', '0x83'), ('S3', '0x9'), ('S4', '0x4e'), ('S5', '0xbf')])
25717998530

Вариант №23

Задача №8

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

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

Целое.
0 6 7 8 9 10 19 20 23 X1 X2 X3 X4 X5

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

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

Тесты:

>>> main(3671269)
{'X1': 101, 'X2': 1, 'X3': 0, 'X4': 513, 'X5': 3}

>>> main(5945137)
{'X1': 49, 'X2': 0, 'X3': 3, 'X4': 685, 'X5': 5}

>>> main(14722563)
{'X1': 3, 'X2': 0, 'X3': 2, 'X4': 41, 'X5': 14}

>>> main(2107212)
{'X1': 76, 'X2': 0, 'X3': 3, 'X4': 9, 'X5': 2}

Вариант №24

Задача №8

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

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

Целое.

0 4 5 10 11 13 14 22 23 29 W2 W3 W4 W5

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

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

0 4 5 11 12 14 15 20 21 29 W5 W3 W2 W4

Тесты:

>>> main(78223740)
'348500256'

>>> main(601837233)
'800757984'

>>> main(60603269)
'240021728'

>>> main(7927898)
'1013018624'

Вариант №25

Задача №8

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

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

Целое.

0 8 9 12 13 18 19 22 23 C1 C2 C3 C4 C5

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

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

0 5 6 7 10 11 14 15 23 C3 C5 C4 C2 C1

Тесты:

>>> main(5547691)
'0x559d25'

>>> main(577047)
'0xbb886'

>>> main(10705660)
'0x7e6a5a'

>>> main(420201)
'0xb4a033'

Вариант №26

Задача №8

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

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

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

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

Целое.
0 1 2 6 7 8 9 16 17 26 T1 T2 T3 T4 T5

Тесты:

>>> main({'T1': 2, 'T2': 24, 'T3': 1, 'T4': 150, 'T5': 986})
129314018

>>> main({'T1': 1, 'T2': 14, 'T3': 0, 'T4': 139, 'T5': 959})
125769273

>>> main({'T1': 1, 'T2': 1, 'T3': 2, 'T4': 237, 'T5': 644})
84531973

>>> main({'T1': 3, 'T2': 29, 'T3': 3, 'T4': 64, 'T5': 847})
111051255

Вариант №27

Задача №8

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

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

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

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

Целое.
0 1 2 3 12 13 17 M2 M3 M4

Тесты:

>>> main([('M2', '0x2'), ('M3', '0x310'), ('M4', '0x4')])
39044

>>> main([('M2', '0x0'), ('M3', '0xf5'), ('M4', '0x0')])
1960

>>> main([('M2', '0x2'), ('M3', '0x66'), ('M4', '0xa')])
82740

>>> main([('M2', '0x2'), ('M3', '0x3e0'), ('M4', '0x9')])
81668

Вариант №28

Задача №8

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

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

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

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

Целое.
0 4 5 6 7 8 15 16 25 J1 J2 J3 J4 J5

Тесты:

>>> main((26, 0, 1, 52, 819))
53687386

>>> main((6, 1, 1, 173, 77))
5090662

>>> main((21, 0, 1, 24, 96))
6297685

>>> main((7, 1, 0, 73, 276))
18106663

Вариант №29

Задача №8

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

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

Целое.

0 2 3 10 11 12 13 15 H2 H3 H4 16 18 19 23 24 31 H4 H5 H6

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

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

0 7 8 13 14 15 H2 H4 H5 16 18 19 20 21 28 29 31 H5 H3 H6

Тесты:

>>> main(3483995857)
'0x19ed4cda'

>>> main(1650176799)
'0xc52dd63'

>>> main(2859377063)
'0x15437534'

>>> main(379694461)
'0x2cd0daf'

Вариант №30

Задача №8

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

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

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

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

Целое.
0 5 6 11 12 13 14 18 19 20 21 30 U1 U2 U3 U4 U5 U6

Тесты:

>>> main({'U1': 25, 'U2': 39, 'U3': 0, 'U4': 26, 'U5': 2, 'U6': 207})
435587545

>>> main({'U1': 27, 'U2': 23, 'U3': 2, 'U4': 17, 'U5': 3, 'U6': 954})
2002544091

>>> main({'U1': 49, 'U2': 62, 'U3': 0, 'U4': 10, 'U5': 0, 'U6': 23})
48402353

>>> main({'U1': 20, 'U2': 6, 'U3': 2, 'U4': 22, 'U5': 0, 'U6': 274})
574988692

Вариант №31

Задача №8

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

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

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

0 4 5 8 9 15 16 17 O1 O2 O3 O4 18 20 21 24 25 34 O4 O6

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

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

0 3 4 10 11 14 15 17 O2 O3 O4 18 19 20 29 30 34 O4 O6 O1

Тесты:

>>> main('0x324ee0843')
'0xd9270042'

>>> main('0x29a11fecd')
'0x354d887f6'

>>> main('0x69a3bbc14')
'0x534dd85e0'

>>> main('0x375a66822')
'0x9ba30341'

Вариант №32

Задача №8

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

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

Целое.
0 2 3 9 10 18 19 28 Q1 Q2 Q3 Q4

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

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

Тесты:

>>> main(174965939)
('3', '22', '369', '333')

>>> main(275002714)
('2', '43', '269', '524')

>>> main(51815645)
('5', '27', '425', '98')

>>> main(409129848)
('0', '111', '180', '780')

Вариант №33

Задача №8

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

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

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

0 9 10 13 14 15 K1 K2 K3 16 22 23 28 29 31 K3 K4 K5

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

Целое.

0 8 9 12 13 15 K3 K2 K1 16 22 23 25 26 31 K1 K5 K4

Тесты:

>>> main('4025455808')
2140670910

>>> main('1215415530')
1092436935

>>> main('3455265276')
1866438092

>>> main('108199104')
806887371

Вариант №34

Задача №8

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

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

Десятичная строка.
0 6 7 9 10 12 13 22 A1 A2 A3 A4

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

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

Тесты:

>>> main('6842786')
{'A1': '0x22', 'A2': '0x3', 'A3': '0x2', 'A4': '0x343'}

>>> main('2023994')
{'A1': '0x3a', 'A2': '0x4', 'A3': '0x0', 'A4': '0xf7'}

>>> main('105422')
{'A1': '0x4e', 'A2': '0x7', 'A3': '0x6', 'A4': '0xc'}

>>> main('8339654')
{'A1': '0x46', 'A2': '0x1', 'A3': '0x0', 'A4': '0x3fa'}

Вариант №35

Задача №8

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

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

Целое.
0 4 5 12 13 20 21 28 B2 B3 B4

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

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

Тесты:

>>> main(149655633)
{'B2': 130, 'B3': 92, 'B4': 71}

>>> main(461216286)
{'B2': 208, 'B3': 236, 'B4': 219}

>>> main(208760659)
{'B2': 122, 'B3': 139, 'B4': 99}

>>> main(164903079)
{'B2': 197, 'B3': 161, 'B4': 78}

Вариант №36

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 7 8 9 18 19 20 25 26 29 O1 O2 O3 O4 O5 O6

Тесты:

>>> main({'O1': 228, 'O2': 0, 'O3': 133, 'O4': 1, 'O5': 60, 'O6': 14})
'0x3bc90ae4'

>>> main({'O1': 153, 'O2': 0, 'O3': 85, 'O4': 1, 'O5': 60, 'O6': 1})
'0x7c8aa99'

>>> main({'O1': 63, 'O2': 1, 'O3': 417, 'O4': 1, 'O5': 36, 'O6': 15})
'0x3e4b433f'

>>> main({'O1': 173, 'O2': 1, 'O3': 654, 'O4': 0, 'O5': 54, 'O6': 6})
'0x1b651dad'

Вариант №37

Задача №8

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

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

Шестнадцатиричная строка.
0 6 7 8 16 17 18 20 D1 D2 D3 D4 D5

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

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

Тесты:

>>> main('0x14b63a')
[('D1', '58'), ('D2', '0'), ('D3', '182'), ('D4', '0'), ('D5', '5')]

>>> main('0x84dd2')
[('D1', '82'), ('D2', '1'), ('D3', '77'), ('D4', '0'), ('D5', '2')]

>>> main('0x2f0e')
[('D1', '14'), ('D2', '0'), ('D3', '47'), ('D4', '0'), ('D5', '0')]

>>> main('0x1b9cf0')
[('D1', '112'), ('D2', '1'), ('D3', '412'), ('D4', '1'), ('D5', '6')]

Вариант №38

Задача №8

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

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

Целое.
0 9 10 12 13 16 W1 W3 17 19 20 26 27 29 30 33 W3 W4 W5 W6

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

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

Тесты:

>>> main(6608546738)
[('W1', '0x3b2'), ('W3', '0x33'), ('W4', '0x1e'), ('W5', '0x1'), ('W6', '0x6')]

>>> main(11577784042)
[('W1', '0x2ea'), ('W3', '0x37'), ('W4', '0x21'), ('W5', '0x6'), ('W6', '0xa')]

>>> main(17026265228)
[('W1', '0x8c'), ('W3', '0x41'), ('W4', '0x6d'), ('W5', '0x6'), ('W6', '0xf')]

>>> main(1329407077)
[('W1', '0x65'), ('W3', '0x69'), ('W4', '0x73'), ('W5', '0x1'), ('W6', '0x1')]

Вариант №39

Задача №8

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

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

Целое.

0 5 6 7 11 12 20 21 P1 P2 P3 P4

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

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

0 1 5 6 11 12 13 21 P2 P3 P1 P4

Тесты:

>>> main(451670)
'902545'

>>> main(626892)
'1254147'

>>> main(766015)
'1535936'

>>> main(1576013)
'3146609'

Вариант №40

Задача №8

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

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

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

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

Шестнадцатиричная строка.
0 5 6 10 11 18 19 24 N1 N2 N3 N4

Тесты:

>>> main([('N1', 18), ('N2', 27), ('N3', 13), ('N4', 31)])
'0xf86ed2'

>>> main([('N1', 0), ('N2', 24), ('N3', 20), ('N4', 56)])
'0x1c0a600'

>>> main([('N1', 7), ('N2', 27), ('N3', 10), ('N4', 10)])
'0x5056c7'

>>> main([('N1', 57), ('N2', 27), ('N3', 187), ('N4', 29)])
'0xeddef9'