цих чисел. Використовуються прямий, зворотній і додатковий коди чисел. Прямий код використовується для представлення додатніх і від’мних чисел в запам’ятовуючому пристрої комп’ютера. Зворотній і додатковий коди використовуються для заміни операції віднімання операцією додавання, що спрощує структуру арифметичного блоку ЕОМ.
Додавання в будь-якій р-ковій системі числення виконується порозрядно аналогічно додаванню десяткових чисел на основі таблиці додавання 2.1. Якщо результат додавання двох цифр в даному розряді р-ковій системі числення більше, ніж р-1, то відбувається перенос одиниці в старший розряд.
Таблиця 2.1 – Правила додавання в двійковій системі числення
Двійкове додавання
0+0=1
1+0=1
0+1=1
1+1=10
Віднімання в р-ковій системі числення також виконується попрозрядно стовбчиком по аналогії з десятковою системою числення за допомогою таблиці .2. Якщо в даному розряді зменшуване число менше від’ємника, то позичається одиниця зі старшого розряду. В двійковій системі числення позичина одиниця зі старшого розряду дорівнює двом одиницям даного розряду.
Таблиця 2.2 – Правила віднімання в двійковій системі числення
Двійкове віднімання
0 – 0=0
1 – 0=1
1 – 1=0
10 – 1=1
Множення двох багатозначних чисел в р-ковій системі числення також виконується за тими ж правилами, що і в десятковій системі з послідовним множенням цифр першого множника на другий множник з допомогою таблиці .3.
Таблиця 2.3 – Правила множення в двійковій системі числення
Двійкове множення
0 0=0
1 0=0
0 1=0
1 1=1
При діленні стовбчиком в р-ковій системі числення виконуються дії множення і віднімання. Ділення двійкових чисел зводиться до порівняння цих чисел між собою і віднімання з більшого числа меншого. Якщо результата ділення не є кінцевим р-ковим дробом, то необхідно виділити неперіодичну частину дробу і її період.
Залежно від способу обробки бітів, розміщених у розрядній сітці, розрізняють два види кодів: паралельний, коли в кожний момент часу всі розряди сітки доступні для обробки, і послідовний, коли в кожний момент часу доступний один розряд сітки. Числа, подані паралельним кодом, доступні за один такт, а числа, подані послідовним кодом, - за n тактів, де n - розрядність сітки. Якщо розрядність числа перевищує довжину сітки, то його обробка ведеться частинами.
Натуральним кодом називають подання числа як цілого беззнакового у двійковій системі числення. Діапазон подання чисел у натуральному коді для n- розрядної сітки становить від 0 до 2n-1, тобто для 8-розрядної сітки - від 0 до 255.
Для подання цілих знакових чисел використовують прямий, обернений і додатковий коди. Старший розряд сітки є знаковим. Значення цього розряду дорівнює 0 для додатних чисел і 1 - для від'ємних. В інших розрядах розміщується модуль числа.
Якщо до натурального коду цілого числа додати знаковий розряд, одержуємо запис числа у прямому коді. Домовимося знаковий розряд розташовувати зліва і відокремлювати від розрядів модуля числа крапкою. Використання ПК забезпечує виконання операції додавання двох додатніх чисел звичайним способом без будь-яких складностей - не варто лише робити перенос одиниці старшого розряду модуля суми у знаковий розряд. Тобто при виконанні арифметичних операцій над прямим кодом двійкових чисел знаковий розряд і розряди модуля не можна розглядати як єдине ціле.
Іншою формою запису двійкових чисел є обернений код.
Обернений код двійкового від'ємного числа утворюється з прямим кодом рівного йому за модулем додатнього числа шляхом інвертування значень усіх його розрядів. Або: обернений код від'ємного числа утворюється шляхом інверсії всіх розрядів модуля цього числа, записаного у прямому коді. Знаковий розряд при цьому зберігає значення 1. При виконанні арифметичних операцій над двійковими числами, поданими в обернений код, знаковий розряд і розряд модуля числа можна розглядати як єдине ціле (перенос одиниці зі старшого розряду модуля суми в знаковий розряд не приводить до помилкового результату), але нуль як і раніше має два зображення - «додатнє» і «від'ємне». Слід зазначити, що отриманий при додаванні від'ємний результат також утворюється в обернений код. У цьому випадку число може бути перетворене у прямому коді інверсією всіх значущих розрядів (розрядів модуля).
Найбільше поширення в обчислювальних пристроях одержало подання від'ємних двійкових чисел за допомогою додаткового коду.
ДК від'ємного числа утворюється з його прямого коду за правилом:
- у знаковому розряді залишається одиниця;
- розряди модуля числа інвертуються;
- до молодшого розряду додається одиниця.
Очевидно, що додатковий код від'ємного числа утворюється з його оберненого коду додаванням одиниці до молодшого розряду.
Операція одержання додаткового коду від'ємного числа з прямого коду рівного йому за модулем додатнього числа називається операцією доповнення. Ця операція полягає в інвертуванні всіх розрядів вихідного коду (включаючи знаковий) і додавання до молодшого розряду одиниці.
Таким чином, сформулюємо наступне правило: у системі двійкових чисел із знаком заміна додатнього числа на рівне йому за модулем від'ємне і навпаки, від'ємного на додатнє, здійснюється шляхом застосуванням до коду даного числа операції доповнення.
Ця властивість подання від'ємних чисел у двійковому коді дозволяє при виконанні арифметичних операцій взагалі відмовитися від операції віднімання, замінивши її операцією додавання з числом, що має знак, протилежний знаку числа, яке віднімається.
2.2 Десяткові числа в упакованому і неупакованому форматах
Сьогодні найбільш поширеними є два формати представлення десяткових чисел в мікропроцесорах – упакований двійково-десятковий код (BCD-Binary-Coded Decimal) і неупакований десятковий код.
Упакований BCD-код – це таке представлення десяткового числа, при якому кожна десяткова цифра представляється 4-х бітним двійковим позиційним кодом 8-4-2-1. При цьому байт складається з двох десяткових цифр. Молодша десяткова цифра займає праву тетраду (біти 3:0), старша – ліву тетраду (біти 7:4). Багаторозрядні BCD-числа займають декілька суміжних байт. Якщо число є знаковим, то для представлення знака в BCD-форматі відводиться старша