Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_gotove 2012.doc
Скачиваний:
28
Добавлен:
14.08.2019
Размер:
1.47 Mб
Скачать

Представлення від’ємних чисел в двійководесяткових кодах

Так само використовується з фіксованою і плаваючою комою і при виконанні різних арифметичних операцій від’ємні числа представляються в оберненому та доповнюючому коді. Наприклад А= - 0,149. Представимо в формі з фіксованою комою і використаємо обернений код А = (-0,149)10. Використовуємо двійководесятковий код "8421".

(-0,149)10 = (-0,0001 0100 1001)8421.

(1) 1110 1011 0110 8421 обернений

(1) 1110 1011 0111(+1) 8421 доповнюючий

Завдання: Виконати операцію додавання в коді "8421" чисел 263 і 459.

Записати в доповнюючому коді числа +0,128 і – 0,473.

Виконання арифметичних операцій в спеціальних кодах

Приклади на алгебраїчне додавання в формі з фіксованою комою з використанням оберненого і доповнюючого кодів.

Додавання в оберненому коді. Якщо при додаванні утворюється другий знаковий розряд, то до молодшого додається +1.

А1 = +0,946 А2 = -0,825

А 1 "8421" = (0)1001 0100 0110

А2 "8421" = (1)1000 0010 0101 в коді "8421"

А1об. = (0)1001 0100 0110

Додається 0110 до кожної комбінації (тільки для від’ємного).

А2 "8421

(1)

1

0

0

0

0

0

1

0

0

1

0

1

+

0

1

1

0

0

1

1

0

0

1

1

0

(1)

1

1

1

0

1

0

0

0

1

0

1

1

(1)

0

0

0

1

0

1

1

1

0

1

0

0


інвертуємо

А2об. = (1)0001 0111 0100

(0)

1

0

0

1

0

1

0

0

0

1

1

0

+

(1)

0

0

0

1

0

1

1

1

0

1

0

0

(1)

1

0

1

0

1

0

1

1

1

0

1

0

+

0

1

1

0

0

1

1

0

0

1

1

0

1+

(0)

0

0

0

1

0

0

1

0

0

0

0

0

1

(0)

0

0

0

1

0

0

1

0

0

0

0

1


неісн. комбінації

поправка

додатне число

Результат: А12 = +0,0001 0010 0001=(+0,121)10

Додавання в доповнюючому коді.

А1 = +0,946 А2 = -0,825

А 1 "8421" = (0)1001 0100 0110 в коді "8421"

А2 "8421" = (1)1000 0010 0101

+

(1)

1

0

0

0

0

0

1

0

0

1

0

1

0

1

1

0

0

1

1

0

0

1

1

0

+

1

1

1

0

1

0

0

0

1

0

1

1

0

0

0

1

0

1

1

1

0

1

0

0

1

(1)

0

0

0

1

0

1

1

1

0

1

0

1

+0110 до кожної комбінації

інвертуємо

+1 до молод. розряду

А2"8421"доп.= (1) 0001 0111 0101

(0)

1

0

0

1

0

1

0

0

0

1

1

0

+

(1)

0

0

0

1

0

1

1

1

0

1

0

1

(1)

1

0

1

0

1

0

1

1

1

0

1

1

+

0

1

1

0

0

1

1

0

0

1

1

0

відкидаємо1

(0)

0

0

0

1

0

0

1

0

0

0

0

1


неісн. комбін.

поправка

А1"2421"доп +А2"8421"доп =(0) 0001 0010 0001 додатне число

Результат: А12 = (0)0001 0010 0001 = (+0,121)10

Приклад №2.

А1 = +0,825 А2 = -0,946

А 1 "8421" = (0)1000 0010 0101 код "8421"

А2 "8421" = (1)1001 0100 0110

Додавання в оберненому коді

А1"8421"об.

(0)

1

0

0

0

0

0

1

0

0

1

0

1

А2"8421" +

(1)

1

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

(1)

1

1

1

1

1

0

1

0

1

1

0

0

А2"8421"об.

(1)

0

0

0

0

0

1

0

1

0

0

1

1


додаємо 0110 до кожної тетради

інвертуємо

А1"8421"об.+

(0)

1

0

0

0

0

0

1

0

0

1

0

1

А2"8421"об.

(1)

0

0

0

0

0

1

0

1

0

0

1

1

(1)

1

0

0

0

0

1

1

1

1

0

0

0

-

0

1

1

1

1

0

0

0

0

1

1

1

0

1

1

0

0

1

1

0

0

1

1

0

(1)

0

0

0

1

0

0

1

0

0

0

0

1


від'ємний рез.

інвертуємо

відняти 0110 від кожної тетради

А1"8421"об. + А2"8421"об. = (1)0001 0010 0001

А1 + А2 =-0,121

Додавання в доповнюючому коді.

А1"8421"доп.

(0)

1

0

0

0

0

0

1

0

0

1

0

1

+

1

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

1

1

1

1

1

0

1

0

1

1

0

0

+

0

0

0

0

0

1

0

1

0

0

1

1

1

А2"8421"доп

(1)

0

0

0

0

0

1

0

1

0

1

0

0


додаємо 0110

інвертуємо

додаємо 1

+

(0)

1

0

0

0

0

0

1

0

0

1

0

1

(1)

0

0

0

0

0

1

0

1

0

1

0

0

(1)

1

0

0

0

0

1

1

1

1

0

0

1

-

1

(1)

1

0

0

0

0

1

1

1

1

0

0

0

-

0

1

1

1

1

0

0

0

0

1

1

1

0

1

1

0

0

1

1

0

0

1

1

0

(1)

0

0

0

1

0

0

1

0

0

0

0

1


від’ємне число

віднімаємо 1

інвертуємо

віднімаємо 0110

Результат: А1 + А2 = (1)0001 0010 0001 = (-0,121)10

Алгоритм виконання операцій над десятковими числами в коді “8421”.

  1. Додатні числа записуються без змін.

  2. Обернений код: Для від’ємних до кожної тетради додаємо +0110, результат інвертуємо. Якщо після додавання чисел буде перенос за знаковий розряд то додаємо +1 до молодшого розряду. Якщо результат додавання є від’ємне число, то необхідно інвертувати результат та відняти –0110 від кожної тетради.

  3. Доповнюючий код: Для від’ємних до кожної тетради додаємо +0110, результат інвертуємо та додаємо +1. Перенос за знаковий розряд – відкидається. Якщо результат додавання є від’ємне число, то необхідно відняти –1 (якщо виникає заборонена комбінація – відняти –0110) інвертувати результат та відняти –0110 від кожної тетради.

  4. Якщо результат виходить неправильним, необхідно перевірити, чи не виходить після додавання поправки +0110 заборонена комбінація, тоді необхідно додати +0110.

Додати в оберненому коді числа: А1 = -0,15; А2 = +0,18; А12 = +0,03

(1)

0

0

0

1

0

1

0

1

0

1

1

0

0

1

1

0

поправка

(1)

0

1

1

1

1

0

1

1

інвертуємо

А1 оберн

(1)

1

0

0

0

0

1

0

0

А2 оберн

(0)

0

0

0

1

1

0

0

0

(1)

1

0

0

1

1

1

0

0

поправка

0

1

1

0

(1)

1

0

1

0

0

0

1

0

0

1

1

0

поправка

1

(0)

0

0

0

0

0

0

1

0

1

+1

(0)

0

0

0

0

0

0

1

1

0,

0

3


Додати в оберненому коді числа: А1 = -0,85; А2 = +0,69; А12 = -0,16

(1)

1

0

0

0

0

1

0

1

0

1

1

0

0

1

1

0

поправка

(1)

1

1

1

0

1

0

1

1

інвертуємо

А1 оберн

(1)

0

0

0

1

0

1

0

0

А2 оберн

(0)

0

1

1

0

1

0

0

1

(1)

0

1

1

1

1

1

0

0

0

1

1

0

поправка

_

(1)

1

0

0

0

0

0

1

0

0

1

1

0

0

1

1

0

-0110

(1)

0

0

0

1

0

1

1

0

-0,

1

6


Додати в оберненому коді числа: А1 = -0,25; А2 = -0,62; А12 = -0,87

А1

(1)

0

0

1

0

0

1

0

1

0

1

1

0

0

1

1

0

попр.

(1)

1

0

0

0

1

0

1

1

інвер.

А1 оберн

(1)

0

1

1

1

0

1

0

0

А2

(1)

0

1

1

0

0

0

1

0

0

1

1

0

0

1

1

0

попр

(1)

1

1

0

0

1

0

0

0

інвер

А2 оберн

(1)

0

0

1

1

0

1

1

1

А1 оберн

(1)

0

1

1

1

0

1

0

0

А2 оберн

(1)

0

0

1

1

0

1

1

1

1

(0)

1

0

1

0

1

0

1

1

1

+1

(0)

1

0

1

0

1

1

0

0

З.к.

0

1

1

0

0

1

1

0

(1)

0

0

0

1

0

0

1

0

інвер

(1)

1

1

1

0

1

1

0

1

0

1

1

0

0

1

1

0

-0110

(1)

1

0

0

0

0

1

1

1

-0,

8

7


Додати в оберненому коді числа: А1 = -0,14; А2 = -0,18; А12 = -0,32

А1

(1)

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

попр.

(1)

0

1

1

1

1

0

1

0

інвер.

А1 оберн

(1)

1

0

0

0

0

1

0

1

А2

(1)

0

0

0

1

1

0

0

0

0

1

1

0

0

1

1

0

попр

(1)

0

1

1

1

1

1

1

0

інвер

А2 оберн

(1)

1

0

0

0

0

0

0

1

А1 оберн

(1)

1

0

0

0

0

1

0

1

А2 оберн

(1)

1

0

0

0

0

0

0

1

1

(1)

0

0

0

0

0

1

1

0

1

+1

(1)

0

0

0

0

0

1

1

1

З.к.

0

1

1

0

(1)

0

1

1

0

0

1

1

1

інвер

(1)

1

0

0

1

1

0

0

0

0

1

1

0

0

1

1

0

-0110

(1)

0

0

1

1

0

0

1

0

-0,

3

2


Додати в доповнюючому коді числа: А1 = -0,14; А2 = -0,18; А12 = -0,32

А1

(1)

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

попр.

(1)

0

1

1

1

1

0

1

0

інвер.

(1)

1

0

0

0

0

1

0

1

1

+1

А1 допов

(1)

1

0

0

0

0

1

1

0

А2

(1)

0

0

0

1

1

0

0

0

0

1

1

0

0

1

1

0

попр

(1)

0

1

1

1

1

1

1

0

інвер

(1)

1

0

0

0

0

0

0

1

1

+1

А2 допов

(1)

1

0

0

0

0

0

1

0

А1 допов

(1)

1

0

0

0

0

1

1

0

А2 допов

(1)

1

0

0

0

0

0

1

0

Відк - 1

(1)

0

0

0

0

1

0

0

0

0

1

1

0

+0110

(1)

0

1

1

0

1

0

0

0

1

-1

(1)

0

1

1

0

0

1

1

1

інвер

(1)

1

0

0

1

1

0

0

0

0

1

1

0

0

1

1

0

-0110

(1)

0

0

1

1

0

0

1

0

-0,

3

2


Додати в доповнюючому коді числа: А1 = -0,63; А2 = +0,79; А12 = +0,16

А1

(1)

0

1

1

0

0

0

1

1

0

1

1

0

0

1

1

0

попр.

(1)

1

1

0

0

1

0

0

1

інвер.

(1)

0

0

1

1

0

1

1

0

1

+1

А1 допов

(1)

0

0

1

1

0

1

1

1

А2 допов

(0)

0

1

1

1

1

0

0

1

(1)

1

0

1

1

0

0

0

0

+0110

0

1

1

0

0

1

1

0

Відк - 1

(0)

0

0

0

1

0

1

1

0

0,

1

6


Додати в доповнюючому коді числа: А1 = -0,59; А2 = +0,49; А12 = -0,1

А1

(1)

0

1

0

1

1

0

0

1

0

1

1

0

0

1

1

0

попр.

(1)

1

0

1

1

1

1

1

1

інвер.

(1)

0

1

0

0

0

0

0

0

1

+1

А1 допов

(1)

0

1

0

0

0

0

0

1

А2 допов

(0)

0

1

0

0

1

0

0

1

(1)

1

0

0

0

1

0

1

0

+0110

0

1

1

0

(0)

1

0

0

1

0

0

0

0

1

-1

(0)

1

0

0

0

1

1

1

1

З.к

0

1

1

0

-0110

(0)

1

0

0

0

1

0

0

1

інвер

(0)

0

1

1

1

0

1

1

0

0

1

1

0

0

1

1

0

-0110

(0)

0

0

0

1

0

0

0

0

0,

1

0


Якщо після віднімання 1 виникає заборонена комбінація то необхідно –0110.

Розділ 2. Логічні основи ЕОМ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]