Для виконання арифметичних дій застосовують спакований формат: після введення кожна цифра займає лише одну тетраду, та, крім того, одна тетрада (молодша) приділяється коду знака числа, а якщо старша лишається вільною, до неї записується нуль. Наприклад, у зображенні -9110 = 0000 1001 0001 11012 число займає 2 байти, молодшою тетрадою 1101 кодується знак мінус, а старша тетрада нульова.
§1.4. ДВІЙКОВА АРИФМЕТИКА
1.4.1. Загальні відомості
Арифметичні операції над операндами (багатоцифровими числами) виконуються в будь-якій системі числення за правилами дій над однорозрядними операндами a, b. Найпрострішою є таблиця дій у двійковій арифметиці (табл. 1.9). У ній зазначено, що під час додавання в деякому розряді чисел двох одиниць утворюється перенесення c (Carry) до старшого розряду, а сума в цьому розряді s=0, тобто 1+1=102. Так само й під час віднімання, якщо зменшуване менше за від’ємник, утворюється позика b' (Borroy) зі старшого розряду, що дорівнює двом одиницям молодшого, тому різниця в ньому s'=1.
Таблиця 1.9 Таблиця 1.10
і |
ci bi ai |
ci+1 |
si |
0 |
000 |
0 |
0 |
1 |
001 |
0 |
1 |
2 |
010 |
0 |
1 |
3 |
011 |
1 |
0 |
4 |
100 |
0 |
1 |
5 |
101 |
1 |
0 |
6 |
110 |
1 |
0 |
7 |
111 |
1 |
1 |
аb |
а+b сs |
a-b b/ s/ |
ab |
a:b |
00 |
00 |
00 |
0 |
- |
01 |
01 |
11 |
0 |
0 |
10 |
01 |
01 |
0 |
- |
11 |
10 |
00 |
1 |
1 |
011...1 + 1 = 100...0;
k одиниць k нулів
100...0 - 1 = 011...1
k нулів k одиниць
Слід зауважити, що в багатоцифровому числі з низкою одиниць, розташованих поруч (показано під таблицею), додавання або перенесення до молодшої з них одиниці перетворює всю низку на нулі, а перший нуль ліворуч від неї – на одиницю. І, навпаки, під час віднімання позика одиниці перетворює низку нулів на одиниці, а одиницю ліворуч – на нуль. З урахуванням цього фактично додавання двох чисел зводиться до підсумовування трьох компонентів (табл. 1.10): доданків i-го розряду ai, bi та перенесення до цього розряду з попереднього ci, у підсумку маємо повну суму в цьому розряді si і перенесення до старшого розряду ci+1.
1.4.2. Алгебричне додавання в двійковій системі
Як і в десятковій системі X10, у двійковій системі X2 (рис. 1.9,а) додавання виконується за два заходи: підсумовування розрядів ai, bi утворює підрозрядну суму s' та перенесення ci, додавання яких дає остаточну суму si. Апаратурно додавання за такою схемою можна реалізувати двома двовходовими півсуматорами: у першому визначається ai+bi, у другому s'+ci, або одним тривходовим суматором: ai+bi+ci.
Операцію віднімання, аби не застосовувати додаткових пристроїв, виконують шляхом алгебричного додавання в доповняльному Xдоп або оберненому Xоб кодах, оперуючи зі знаковими бітами як зі звичайними розрядами чисел. Зрозуміло, що модуль суми двох чисел має задовольняти вимогу правильного вибору їх масштабу:
| A+B | <2n,(1.3)
інакше відбудеться переповнення розрядної сітки – сума не вміститься у відведені для неї n розрядів.
Залежно від модулів та знаків доданків можливі чотири випадки обчислення їх суми, які розглянемо на прикладах.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.