Лекція № 5
Двійкова арифметика
Правила арифметики у всіх позиційних системах аналогічні.
Головною операцією, яка використовується в цифрових пристроях при виконанні різних арифметичних дій є операція алгебраїчного додавання чисел.
Додавання двох чисел в двійковій системі відліку виконується на основі таблиці двійкового додавання:
0+0=0
1+0=1
0+1=1
1+1=10 - перенос в сусідній старший розряд
Наприклад : 10110100
+01101000
100011100
Віднімання двох чисел виконується на основі таблиці двійкового віднімання:
0-0=0
1-0=1
1-1=0
10-1=1позика із сусіднього старшого розряду
Наприклад : 11101010
-01100100
10000110
В цифровій техніці операція віднімання з використанням позики практично не застосовується.
В більшості сучасних мікро ЕОМ цілі числа займають ціле число байтів або слів (2 байта для Intel 8086). Основою є двійкова система відліку. Так число 154(10) = 11111110(2).
Значні труднощі завжди викликає кодування від’ємних чисел. Найбільш популярні тепер три способи кодування.
1 спосіб - представлення від’ємних цілих чисел в вигляді знак-модуль. Від’ємні та додатні числа представляються однаково, за виключенням лівого знакового розряду.
Якщо 1, то число від’ємне, якщо 0, то додатне.
-00011101
10011101 ПК
Недоліком є складність процедури додавання чисел з різними знаками.
2 спосіб - представлення чисел за допомогою оберненого коду.
Число доповнюємо нулями до машинного слова і інвертуємо.
10011101 ПК
11100010 ОК
Перевагою такого кодування є простота отримання оберненого коду та можливість не враховувати знаки при додаванні та відніманні.
Недоліки: утворюються два різних представлення нуля, нееквівалентних по запису; необхідний циклічний перенос при додаванні для отримання вірного результату.
3 спосіб - це доповнений код або двійкове доповнення.
Для від’ємного числа доповнений код отримуємо шляхом інвертування значущих розрядів числа, після чого до молодшого розряду числа додається одиниця.
-00011101
10011101 ПК
11100010 ОК
11100011 ДК
Специфіка доповненого коду є в тому, що так як і в десятковій системі, тут можна брати доповнення будь-якого від’ємного числа до основи системи:
(10) 5 + (-2) = 3 (2) 5 = 0000 0101(2) -2 = 1000 0010(2) ПК
10 5 0000 0101 1111 1101 ОК
- 2 +8 +1111 1110 1111 1110 ОК
8 13 10000 0011(2) = 3(10)

Представлення чисел в вигляді доповненого коду має такі переваги:
додавання та віднімання виконуються просто;
- тут одне представлення нуля.
Для виявлення переповнення розрядної сітки використовують модифікований доповнений код, де для знаку відводять два старші розряди.
00000001 110000001 МПК
111111110 МОК
111111111 МДК

Віднімання з використанням позики: від’ємне число представляють в оберненому, доповненому або в модифікованому коді і операцію віднімання замінюють на операцію додавання.
Приклад 1
0000 1010 =А(16) -6(16)=1000 0110 ПК
1111 1001 ОК
0000 1010 ПК 10
+1111 1001 ОК -6
1 0000 0011 4
+1
0000 0100 ПК
Приклад 2
1000 1010 = -А(16) ПК 6(16)=0000 0110
1111 0101 ОК

1111 0110 ОК -10
+0000 0110 ПК +6
1111 1011 ОК -4
1000 0100 ПК
Приклад 3
0000 1010 =А(16) -6(16)=1000 0110 ПК
1111 1001 ОК
1111 1010 ДК
0000 1010 ПК 10
+1111 1010 ОК -6
1 0000 0100 ПК 4
відкидається
Приклад 4
1000 1010 = -А(16) ПК 6(16)=0000 0110
1111 0101 ОК
1111 0110 ДК
1111 0110 ОК -10
+0000 0110 ПК 6
1111 1011 ОК -4
1000 0100 ПК
Множення двійкових багаторозрядних чисел включає в себе операції - визначення знака добутку та визначення його абсолютної величини. Знаковий розряд отримують додаванням цифр знакових розрядів співмножників без формування переносу.
0+0=0
0+1=1
1+0=1
1+1=0 без формування переносу
Абсолютна величина значення добутку визначається шляхом множення чисел без врахування їх знаків на основі таблиці двійкового множення :
0*0=0
1*0=0
0*1=0
1*1=1
Особливість множення двійкових чисел полягає в тому, що частковий добуток може бути або зсунутим на відповідне число розрядів, якщо відповідна цифра множника дорівнює 1, або нулем, якщо відповідна цифра множника дорівнює 0.

Приклад множення цілих чисел:
0 000 1101*0 000 0101

1101 множене
* 101 множник (ручне множення)
1101 1-й частковий добуток
+ 0000 2-й частковий добуток
1101__ 3-й частковий добуток
1000001 добуток