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

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

Прямий код Прямий код ґрунтується на природному поданні чисел у вигляді їхнього абсолютного значення з кодом відповідного знака: плюса або мінуса у старшому розряді. Прийнято, що плюс кодується як нуль (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 послідовно виконують, щоб отримати усі цифри модуля частки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: