- •1 Частина
- •Вибір варіанту завдання та визначення вхідних даних
- •Переведення вхідних даних у двійкову систему числення
- •Переведення розрахункових чисел у двійкову, вісімкову, шістнадцяткову і двійково-десяткову системи
- •Уявлення числа в однобайтовому полі
- •Уявлення двійкових чисел у прямому, зворотному і додатковому модифікованому кодах у форматі з фіксованою комою
- •Операції додавання в зворотному і додатковому кодах
- •Уявлення чисел у форматі з плаваючою комою
-
Уявлення числа в однобайтовому полі
Уявимо число C в однобайтовому полі. В числі С визначимо 3-й біт, інвертуємо 5-й біт та встановимо 4-й біт, а 1-й біт – скинемо. Виконаємо: shl – лінійний логічний зсув числа С на і розрядів вліво; ror – циклічний зсув числа С на і розрядів вправо (в прапорці CF спочатку нуль); rcr – циклічний зсув числа С на і розрядів вправо (в прапорці CF спочатку одиниця); sar – арифметичний зсув числа С на і розрядів вправо ( в старший біт числа C перед зсувом впишемо одиницю).
Таблиця 2.1 – Вхідні дані
Десяткове число |
Номер біта(n), який необхідно встановити |
Номер біта(k), який необхідно визначити |
Номер біта(m), який необхідно скинути |
Номер біта(p), який необхідно проінвертувати |
i |
14 |
4 |
3 |
1 |
5 |
3 |
Подаємо число 14 у двійковій системі числення: 1410 = 11102
-
Встановимо 4-й біт: виконаємо побітове логічне додавання даного числа і числа-маски, у якого значення ′1′ тільки у 4-му біті.
7
6
5
4
3
2
1
0
1410
0
0
0
0
1
1
1
0
OR
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
-
Визначимо 3-й біт: виконаємо побітове логічне множення даного числа і числа-маски, у якого значення ′1′ тільки у 3-му біті.
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
AND |
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Отримаємо результат, не рівний нулю, тому у 3-му біті одиниця.
-
Скинемо 1-й біт: виконаємо побітове логічне множення даного числа і числа-маски, у якого значення ′0′ тільки у 1-му біті, а інші – ′1′.
7
6
5
4
3
2
1
0
1410
0
0
0
0
1
1
1
0
XOR
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
-
Проінвертуємо 5-й біт: виконаємо побітову логічну операцію XOR над даним числом і числом-маскою, у якого ′1′ тільки в 5-му біті
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
OR |
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
Перевірка отриманих результатів за допомогою демонстраційної програми зображена на рисунках 2.1 та 2.2.
Рисунок 2.1-2.2 – Перевірка отриманих результатів
-
Виконаємо shl – лінійний логічний зсув числа С на і (3) розрядів вліво:
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
|
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Заповнюємо нулями 0,1 та 2 біти.
-
Виконаємо ror – циклічний зсув числа С на і (3) розрядів вправо (в прапорці CF спочатку нуль):
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
-
Виконаємо rcr – циклічний зсув числа С на і розрядів вправо (в прапорці CF спочатку одиниця):
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
-
Виконаємо sar – арифметичний зсув числа С на і розрядів вправо ( в старший біт числа C перед зсувом впишемо одиницю).
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1410 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
|
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |