- •1 Мета, завдання і об'єм курсової роботи
- •Підписи до рисунків Times New Roman (Cyr), кегль 12, bold, без абзацного відступу вирівнювання по центру.
- •2 Представлення чисел в комп’ютері
- •3 Арифметичні операції з двійковими числами
- •4 Арифметика чисел з плаваючою комою
- •5 Завдання на курсову роботу
- •6 Приклад розв’язку курсової роботи
3 Арифметичні операції з двійковими числами
3.1 Виконання операції додавання (віднімання) в двійковій системі
Подібно до того як із десятковими, так і з двійковими числами можна виконувати всі арифметичні дії. В принципі комп’ютер уміє тільки додавати. Всі інші арифметичні дії зводяться до арифметичної операції додавання, логічних операцій зсуву при множенні і діленні. Віднімання заміняється додаванням в додатковому чи зворотньому коді.
З метою спрощення виконання арифметичних операцій використовують спеціальні коди для представлення чисел в комп’ютері. Саме використання кодів дозволяє звести операцію віднімання чисел до арифметичного додавання кодів цих чисел. Використовуються прямий, зворотній і додатковий коди чисел. Прямий код використовується для представлення додатніх і від’ємних чисел в запам’ятовуючому пристрої комп’ютера. Зворотній і додатковий коди використовуються для заміни операції віднімання операцією додавання, що спрощує структуру арифметичного блоку ЕОМ.
Додавання в будь-якій р-ковій системі числення виконується порозрядно аналогічно додаванню десяткових чисел на основі таблиці додавання 3.1. Якщо результат додавання двох цифр в даному розряді р-ковій системі числення більше, ніж р-1, то відбувається перенос одиниці в старший розряд.
Таблиця 3.1 – Правила додавання в двійковій системі числення
Двійкове додавання |
0+0=1 1+0=1 0+1=1 1+1=10 |
Віднімання в р-ковій системі числення також виконується порозрядно стовбчиком за аналогією з десятковою системою числення за допомогою таблиці 3.2. Якщо в даному розряді зменшуване число менше від’ємника, то позичається одиниця зі старшого розряду. В двійковій системі числення позичина одиниця зі старшого розряду дорівнює двом одиницям даного розряду.
Таблиця 3.2 – Правила віднімання в двійковій системі числення
Двійкове віднімання |
0 – 0=0 1 – 0=1 1 – 1=0 10 – 1=1 |
Множення двох багатозначних чисел в р-ковій системі числення також виконується за тими ж правилами, що і в десятковій системі з послідовним множенням цифр першого множника на другий множник з допомогою таблиці 3.3.
Таблиця 3.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. При виконанні арифметичних операцій над двійковими числами, поданими в обернений код, знаковий розряд і розряд модуля числа можна розглядати як єдине ціле (перенос одиниці зі старшого розряду модуля суми в знаковий розряд не приводить до помилкового результату), але нуль як і раніше має два зображення - «додатнє» і «від'ємне». Слід зазначити, що отриманий при додаванні від'ємний результат також утворюється в обернений код. У цьому випадку число може бути перетворене у прямому коді інверсією всіх значущих розрядів (розрядів модуля).
Найбільше поширення в обчислювальних пристроях одержало подання від'ємних двійкових чисел за допомогою (ДК).
ДК від'ємного числа утворюється з його прямого коду за правилом:
- у знаковому розряді залишається одиниця;
- розряди модуля числа інвертуються;
- до молодшого розряду додається одиниця.
Очевидно, що додатковий код від'ємного числа утворюється з його оберненого коду додаванням одиниці до молодшого розряду.
Операція одержання додаткового коду від'ємного числа з прямого коду рівного йому за модулем додатнього числа називається операцією доповнення. Ця операція полягає в інвертуванні всіх розрядів вихідного коду (включаючи знаковий) і додавання до молодшого розряду одиниці.
Таким чином, сформулюємо наступне правило: у системі двійкових чисел із знаком заміна додатнього числа на рівне йому за модулем від'ємне і навпаки, від'ємного на додатнє, здійснюється шляхом застосуванням до коду даного числа операції доповнення.
Ця властивість подання від'ємних чисел у двійковому коді дозволяє при виконанні арифметичних операцій взагалі відмовитися від операції віднімання, замінивши її операцією додавання з числом, що має знак, протилежний знаку числа, яке віднімається.
3.2 Десяткові числа в упакованому і неупакованому форматах
Сьогодні найбільш поширеними є два формати представлення десяткових чисел в мікропроцесорах – упакований двійково-десятковий код (BCD-Binary-Coded Decimal) і неупакований десятковий код.
Упакований BCD-код – це таке представлення десяткового числа, при якому кожна десяткова цифра представляється 4-х бітним двійковим позиційним кодом 8-4-2-1. При цьому байт складається з двох десяткових цифр. Молодша десяткова цифра займає праву тетраду (біти 3:0), старша – ліву тетраду (біти 7:4). Багаторозрядні BCD-числа займають декілька суміжних байт. Якщо число є знаковим, то для представлення знака в BCD-форматі відводиться старша тетрада старшого байта. Для кодування знака можна використовувати 6 двійкових кодових комбінацій, котрі не використовуються для представлення десяткових цифр. Це коди 1010-1111 (A-F в шістнадцятковому представлені). Зазвичай для кодування знака “плюс” використовують код 1100 (C), а для знака “мінус” – 1101 (D).
Неупакований десятковий код є підмножиною міжнародної таблиці кодування символів ASCII (таблиця 2.1). Очевидно, для зберігання неупакованих десяткових чисел необхідно вдвічі більше пам’яті, оскільки кожна цифра представляється 8-бітовим кодом.
