Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(ІНФОРМАТИКА)аріфм_лог_операц.doc
Скачиваний:
18
Добавлен:
17.03.2016
Размер:
256 Кб
Скачать

1.3 Додавання чисел у додатковому коді (срс)

У додатковому коді операція алгебраїчного віднімання замінюється операцією додавання з протилежним знаком.

Знакова та числова частина числа розглядається як єдина ціла.

В результаті ЕОМ оперує з від’ємними числами як з неправильними дробами. При цьому вірний знак суми отримується як результат додавання знакових розрядів чисел і одиниці переносу з цифровою частиною числа, якщо вона є. При цьому все відбувається автоматично – сума чисел у додатному коді завжди є додатній код.

 

При умові [С]д= [A]д+ [B]д (|A|+|B|)<1

Можливі чотири випадки:

1. A>0; B>0,

як у прямому коді

 

2. A>0; B<0.

При додаванні чисел з протилежними знаками з яких по абсолютному значенню більше додатне, то результат отримується в прямому коді. Отримана сума відрізняється від істинного суми на два. Корекція на два відбувається автоматично, так як у розрядній сітці ЕОМ відсутнє місце.

Наприклад

[А]д=0, 10111

[В]д=1, 10100

+0, 10111

0,01100

10,01011

 

3. A<0; B>0.

У зв’язку з тим що А від’ємне ми отримаємо суму у додатковому коді.

Наприклад

А=-0,10101

В=0,01001

[А]д=1, 01011

[В]д=0,01001

[С]д=1, 10011

+1,01011

0,01001

1,10100

[С]п=-0, 01100

 

4. А<0 B<0

У зв’язку з тим що сума від’ємних чисел дає результат від’ємний, тобто як і у другому випадку можливий перенос з знакового розряду суми. Так як додавання відбувається по модулю два, то ми цей перенос не враховуємо.

Наприклад

А=-0,10101

В=-0,01001

[А]д=1, 01011

[В]д=1,10111

[С]д=1,00010

+1,01011

1,10111

11,00010

[С]п=-0, 11110

 

Таким чином в усіх випадках знак суми формується автоматично по загальним правилам порозрядного додавання числових та знакових розрядів доданків.

При додаванні чисел діє переставний закон. При неправильному виборі масштабно коефіцієнта доданків у першому та другому випадках можливе переповнення – є відмінність знаку доданків. Переповнення ділять на додатне переповнення і від’ємне. Ознакою додатного переповнення є наявність переносу з цифрової частини в знаковий розряд, якщо відсутній перенос з знакового розряду.

Ознакою від’ємного переповнення є наявність переносу з знакового розряду суми при відсутності переносу з цифрової частини числа в знакову.

Наприклад

А=-0,101

В=-0,111

[А]д=1,011

[В]д=1,001

[С]д=10,100

+1,011

1,001

10,100

 

Таким чином переповнення відсутнє коли обидва переноси є або їх зовсім нема. Наявність одного з переносів має місце переповнення розрядної сітки. Для виявлення переповнення розрядної сітки вводять допоміжний розряд в знакову частину. Цей розряд називається розрядом переповнення. Таким чином отримується модифікований додатковий код. Лівий знаковий розряд зберігає знак.

Алгоритм усунення переповнення.

  1. 2.      Збільшити масштабний коефіцієнт, тобто зсунути число на один розряд праворуч.

  2. 3.      У правому знаковому розряді продублювати значення лівого знакового розряду.

Наприклад

А=0,101

В=-0,111

[А]дm=00,101

[В]дm=11,001

00,101

11,001

11,110

А=0,101=[А]д

В=0,011 =[В]д

00,101

00,011

01,000=00,100*21