Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архітектура компютерів.doc
Скачиваний:
7
Добавлен:
18.09.2019
Размер:
177.15 Кб
Скачать

1.Алгоритми додавання, віднімання, множення і ділення двійкових чисел у прямих і доповнювальних кодах з фіксованою і плаваючою точкою.

П рямий код Прямий код ґрунтується на природному поданні чисел у вигляді їхнього абсолютного значення з кодом відповідного знака: плюса або мінуса у старшому розряді. Прийнято, що плюс кодується як нуль (0), а мінус - як одиниця (1). Формула утворення прямого коду двійкового числа А = +0, аз...ап має вигляд

Прямий код використовують для зберігання чисел у запам'ятовуючих пристроях (ЗУ), у пристроях введення і виведення, а також під час виконання операцій множення. Нуль в прямому коді може бути додатним і від'ємним.

Доповняльний код Щоб записати від'ємне число в оберненому коді, потрібно у знаковому розряді цього числа поставити одиницю, а в числових розрядах нулі замінити одиницями, а одиниці - нулями. Операція заміни нуля на одиницю і навпаки називається інверту­ванням. Обернений код додатного числа повністю співпадає з відображенням числа у прямому коді. Щоб записати від'ємне число у доповняльному коді, потрібно у знаковому розряді цього числа поставити одиницю, а у всіх числових розрядах нулі замінити одиницями, а одиниці - нулями і до отриманого результату додати одиницю до молодшого розряду. Щоб перетворити доповняльний код від'ємного числа у прямий код, потрібно у числових розрядах цього числа замінити нулі на одиниці, а одиниці на нулі і додати до отриманого результату одиницю молодшого розряду, тобто виконати друге доповнення. У доповняльному коді від'ємний нуль відсутній.Набір бітів, що складається з 1, за яким йдуть усі нулі, є доповненням самого себе. У результаті ряд додатних і від'ємних чисел несиметричний - існує одне від'ємне число без відповідного йому додатного.

Арифметика двійкових чисел з фіксованою точкою

1.Дію додавання розпочинають з додавання цифр молодших розрядів доданків. Якщо результат додавання більший від 1, то до наступного розряду переносять одиницю, а у молодшому розряді пишуть нуль. Потім додають цифри наступних розрядів з урахуванням одиниць, що перенесені з попереднього розряду, до одержання шуканої суми.(1+0=1; 0+1=1; 0+0=0; 1+1=10; 1+1+1=11)

2.Дію віднімання розпочинають з наймолодших розрядів. Якщо який-небудь з розрядів двійкового числа зменшуваного дорівнює 0, а однойменний розряд від'ємника дорівнює 1, то позичають одиницю із сусіднього старшого розряду зменшуваного і тоді у ньому матимемо дві одиниці.(0-0=0; 1-0=1; 0-1=11; 1-1=0).

3. Множення Виконуються два правила множення двійкового числа на двійкову цифру: 1) якщо молодший розряд множника дорівнює 1, то двійкове множене просто копіюється без змін як проміжний добуток;

2) якщо цей розряд множника дорівнює 0, то проміжний добуток =0.

операція множення двійкових чисел зводиться до операцій зсуву та додавання. Відомі такі два основні способи виконання операції множення: 1) Множення, починаючи з молодших розрядів множника, із зсувом вліво; 2) Множення, починаючи із старших розрядів множника, із зсувом вправо. Знак визначається «додаванням за модулем 2».

4.Ділення двійкових чисел - найбільш трудомістка і тривала за часом операція, що виконується у АЛП більшості комп'ютерів загального призначення. перед початком операції необхідно виключити можливість ділення на 0. Звичайно у комп'ютерах операція ділення реалізується двома способами:- з нерухомим дільником і діленим, що зсувається вправо;- з нерухомим дільником і діленим, що зсувається вліво.

1. Ділення з відновленням залишку. Цей алгоритм може бути так описаний: 1. Початкове значення часткового залишку (ЧЗ) приймають таким, що дорівнює старшим розрядам діленого. 2. ЧЗ подвоюється зсувом на один розряд вліво. У його молодший розряд, що звільняється під час зсуву, заносять наступну цифру частки.3. Із зсунутого ЧЗ віднімають дільник і аналізують знак результату відні­мання.4. Наступна цифра модуля частки дорівнює 1, коли результат віднімання додатний, і дорівнює 0, якщо він від'ємний. В останньому випадку значення залишку відновлюється до того значення, яке було до віднімання.

5. Пункти 2 - 4 послідовно виконують для отримання усіх цифр модуля частки. Крім того, доцільно операцію віднімання під час ділення чисел замінити додаванням дільника у доповняльному коді. Тоді значення переносу від додавання буде утворювати значення відповідного розряду частки. Отже, операція ділення двійкових чисел алгоритмом з відновленням залишку зводиться до операцій зсуву вліво залишку та частки і додавання. Також видно, що скільки буде отримано нульових значень розрядів частки, то стільки ж буде зроблено додаткових операцій відновлення залишків, на виконання яких витрачається зайвий час. У цьому полягає недолік розглянутого алгоритму.

2. Ділення без відновлення залишку. алгоритм.1,2. див.попередн. 3. Із зсунутого ЧЗ віднімається дільник, якщо залишок додатний, і до зсуну­того ЧЗ додається дільник, якщо залишок від'ємний;4. Наступна цифра модуля частки дорівнює 1, коли результат віднімання додатний, і нулю, якщо він від'ємний;5. Пункти 2 - 4 послідовно виконують, щоб отримати усі цифри модуля частки.

Додавання і віднімання двійкових чисел з плаваючою комою

Додавання і віднімання чисел з рухомою комою реалізується за три етапи.

1. Вирівнювання порядків. Для чисел з рухомою комою вага Мі одиниці і -го розряду мантиси визначається не тільки позицією цього розряду, але і порядком р числа тобто Мі = dр-і, де і - номер позиції, рахуючи вправо від коми. При додаванні мантис необхідно, щоб ваги їх однойменних розрядів чисел були однаковими. Для цього мантиси зсувають одна щодо одної так, щоб їхні порядки були однаковими. Щоб, вирівнюючи порядки не отримати мантиси, більшої за одиницю, їх треба вирівнювати до більшого порядку. Для цього мантису з меншим порядком зсуваєть вправо (у бік молодших розрядів) на кількість розрядів, що дорівнює різниці порядків.

2. Додавання мантис. Додавання мантис з вирівняними порядками виконується аналогічно додаванню чисел з фіксованою комою. При алгебра­їчному додаванні для представлення від'ємних мантис використовується доповняльний або обернений модифікований код. Сума мантис - це мантиса результату. Порядок результату - вирівняний порядок доданків, тобто порядок більшого числа.

3. Нормалізація результату, якщо це необхідно.

Множення. Під час виконання операції множення чисел, що подані у формі з рухомою комою, їхні мантиси множаться як числа з фіксованою комою, а порядки додаються. Дії виконують у такій послідовності: 1. Визначають знак добутку (за модулем 2). 2. Визначають порядок добутку алгебраїчним додаванням порядків співмножників.3. Перемножують мантиси співмножників.4. процедури нормалізації і закруглення результату.

Ділення. Під час операції ділення чисел, поданих у формі з рухомою комою їхні мантиси діляться як числа з фіксованою комою, а порядки віднімаються. У обох випадках перевірка на переповнення обов'язкова. Але оскільки реально віднімаються характеристики чисел, то ділення виконується за такою формулою: А1 : А2 = m1 • 2r1 : m2 • 2r2 = (m1 : m2)• 2r1-r2+l. Знак відповіді визначається звичайним способом. Якщо відповідь вийшла ненормалізованою, то виконується процедура нормалізації і округ­лення відповіді.