Лекція № 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 добуток