русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Дадавання і віднімання чисел у прямих кодах за алгоритмом 3 страница


Дата додавання: 2015-01-08; переглядів: 1076.


NA = 0; NB = 0; NS = 1; eN = 1; EN = 0; .

Зазначимо, що у випадку, коли ознака ППП(А+В) = 0, при додаванні додатних чисел А і В сума модулів (МА + МВ) змінюється в межах від 0 до 7 і на виводах суматора формується рядок двійкових цифр:

( + ) = EN NS S3S2S1 = 0 0 000 ¸ 0 0 111 .

Отже, змінні суматора знакових розрядів NA і NB (рис.1.39) за коректних значень оберненого коду суми (А + В) мають значення:

NA = 0; NB = 0; NS = 0; EN = 0; eN = 0; . (1.114)

Згідно з цих міркувань ознаку позитивного переповнення суматора обернених кодів потрібно обчислювати за булевими формулами:

(1.115)

. (1.116)

За алгоритмом (1.112) при обчисленні суми від’ємних чисел А і В може виникати також негативне переповнення (НПП(А+В)) суматора (рис.1.39). У цьому випадку операнди А і В мають виключно від’ємні значення, тобто А=(-МАВ=(-МВ), причому за ознакою НПП(А+В) = 1 сума (МА+МВ) являє множину чисел від (- 8) до (- 14). Звідси дістанемо:

EN NS S3S2S1 = + = (15 – МА) + (15 – МВ) =

=30 – (МА + МВ) =30 – (8 ¸ 14) = 22 ¸ 16 = 1 0 110 ¸ 1 0 000.

Таким чином, за умови, коли ознака НПП(А+В)=1, змінні суматора знакових розрядів SMN складають двійковий набір:

NA = 1; NB = 1; NS = 0; EN = 1; eN = 0;

У випадку, коли ознака НПП(А+В)= 0 (при А<0 і В<0) і (А+В) = (-6)¸ (-1) повна сума ( + )m15 складає рядок двійкових цифр:

EN NS S3S2S1 = ( + )5 =

=[(15 – МА) + (15 – МВ)]5 = [30 – (МА + МВ)]5 =

=[30 – (6 ¸ 1)]5 = (24 ¸ 29)5 = 1 1 000 ¸ 1 1 101;

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= ( 1 000+ 0001) ¸ ( 1 101 + 0001) = 1 001 ¸ 1 110.

Таким чином, за умови, коли ознака НПП(А+В)= 0 (при А < 0 і В < 0) і (А+В) = (-6)¸ (-1) змінні SMN і SMNi (рис.1.39) формують двійковий набір:

NA = 1; NB = 1; NS = 1; EN = 1; eN = 1; .

У випадку, коли ознака НПП(А+В)=0 і (А+В)= -7 при А<0 і В<0, функція утворює рядок двійкових цифр (рис.1.39):

EN NS S3S2S1 = ( + )5 =

= [30 – (МА + МВ)]5 = [30 – 7]5 = 23 = 1 0 111;

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= 0 111 + 0001 = 1 000.

Узагальнюючи можна зазначити, що за ознакою НПП(А+В) = 0 і (А+В) = -7 змінні SMN і (SMN)i (рис. 1.39) мають значення:

NA = 1; NB = 1; NS = 0; EN = 1; eN = 0; .

Таким чином, у загальному випадку ознака негативного переповнення розрядної сітки суматора обернених кодів (рис.1.39) повинна обчислюватися за допомогою однієї із формул:

, (1.117)

. (1.118)

Отже, при додаванні чисел одного знаку переповнення суматора обернених кодів (ПП(А+В)) згідно з (1.115 ¸ 1.118) можна здійснювати за допомогою однієї з формул:

(1.119)

(1.120)

На завершення розглянемо типові приклади додавання чисел у обернених кодах (рис.1.39).

Нехай потрібно обчислити обернений код суми за таких зна-чень аргументів А=-001 і В= - 011. За цих умов на виходах SMOK (рис.1.39) отримаємо:

EN NS S3S2S1 = ( + )5 = [( 1 110 + 1 100] = 1 1 010 (eN = 1);

NS i I3 I2 I1 = NS S3S2S1 + 000EN = ( 1 010 + 0001)5 = 1 011 ( = 0).

Звідси дістанемо:

Припустімо далі, що потрібно обчислити суму (А + В) за таких аргументів: А = - 010; В = - 101. Очевидно, що у цьому випадку будуть справедливі такі визначення (рис.1.39):

EN NS S3S2S1 = ( + )5 =

= [( 1 101 + 1 010] = 1 0 111 (eN = 0);

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= ( 0 111 + 0001) = 1 000 ( = 1);

Розглянемо далі приклад, що ілюструє негативне переповнення розрядної сітки суматора при додаванні від’ємних чисел.

Нехай операнди суматора мають значення А = - 110 і В = - 111.

За цих аргументів двійкові коди обернених кодів суматора (рис.1.39) та ознаки операції набувають таких значень:

EN NS S3S2S1 = ( + )5 =

= [( 1 001 + 1 000]5 = 1 0 001 (eN = 0);

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= ( 0 001 + 0001) = 0 010 ( = 0);

Таким чином, у цьому разі маємо ознаку НПП(А+В) =1 і ( + )m15 = = 0 010 ¹ , тобто довжина суми (А + В) перевищує розрядну сітку суматора обернених кодів (рис.1.39).

Розглянемо тепер правила віднімання чисел у обернених кодах.

Згідно з загальним правилом обчислення оберненого коду різниця чисел повинна визначатися за формулою:

= [15 + (A - B)]m15.

Для спрощення схеми формувача різниці чисел у обернених кодах формула звичайно перетворюється наступним чином:

= (15 + А – (15 + В) + 15)m15 =

= [(15 + A)m15 + 15 – (15 + B)m15]m15 =

= ( + 15 - )m15 = ( + )m15 , (1.121)

де , - відповідно зображення обернених кодів чисел А і В за чотирипозиційним форматом.

Через те, що аргументи функцій і визначені у діапазоні чис-лової прямої від (-7) до (+7), функція також існує у проміжку між (-7) і (+7). Тоді, очевидно, позитивне переповнення функції виникає у тому випадку, коли А=+МА, В= - МВ, (А - В) = (МА+МВ) і сумісно (МА+МВ)=(8 ¸ 14). У цьому випадку повна сума ( + ) складає п’ятипозиційний код (рис.1.40):

EN NS S3S2S1 = ( + )5 =

= (МА + 15 - )5 = (МА +15 – (15 – МВ))5 =

= (МА + МВ)5 = (8 ¸ 14)5 = 0 1 000 ¸ 0 1 110.

Таким чином, за наявності ознаки ППП(А-В) = 1 змінні SMN і (SMN)i (рис. 1.40) мають значення:

NA = 0; = 0; NS = 1; EN = 0; eN = 1; .

Якщо при А > 0 і B < 0 (AB) = (0) ¸(+7), тобто (МА + МВ) =(0) ¸ (7) і ознака ППП(А-В) = 0, повна сума складає код:

EN NS S3S2S1 = ( + )5 =

= (МА + МВ)5 = 0 0 000 ¸ 0 0 111.

Отже, за умови, коли ознака ППП(А-В) = 0, змінні SMN і (SMN)i (рис.1.40) мають значення:

NA = 0; = 0; NS = 0; EN = 0; eN = 0; .

Виходячи з цих міркувань, маємо наступні способи фіксування позитивного переповнення суматора при відніманні чисел у обернених кодах (рис.1.40):

; (1.122)

(1.123)

 

Рисунок 1.40 – Структурна схема суматора для віднімання чисел у обернених кодах

Негативне переповнення функції виникає у тому випадку, коли А=-МА, В = + МВ, (А - В)=-( МА + МВ) і сумісно (МА + МВ) утворюють множину чисел від 8 до 14. У цьому випадку повна сума ( + ) складає код (рис.1.40):

EN NS S3S2S1 = ( + )5 =

= [(15 – MA) + 15 – MB]5 = [30 - (МА + МВ)]5 =

= [30 – (8 ¸ 14)]5 = (22¸16)5 = 1 0 110 ¸ 1 0 000;

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= ( 0 110 + 0001) ¸ 0 001 + 0001) = 0 111 ¸ 0 010.

Таким чином, за ознакою НПП(А-В) = 1 змінні SMN і (SMN)i (рис. 1.40) мають значення:

NA = 1; = 1(NB =0); NS = 0; eN = 0;

EN = 1; ; .

Якщо при А < 0 і B > 0 (AB) = (-1) ¸(-6), тобто за (МА + МВ) = 0 ¸ 6 і ознака НПП(А-В) = 0, повна сума функції складає код (1.40):

EN NS S3S2S1 = ( + )5 = [(15 – MA) + 15 – MB]5 =

= [30 - (МА + МВ)]5 = [30 – (1 ¸ 6)]5 = (29 ¸ 24)5 =

= 1 1 101 ¸ 1 1 000;

NS i I3 I2 I1 = NS S3S2S1 + 000EN = NS S3S2S1 + 0001 =

=( 1 101 + 0001) ¸ ( 1 000 + 0001) = 1 110 ¸ 1 001.

Таким чином, за умови, коли (АВ) = (-1) ¸ (-6) і ознака НПП(А-В) = 0, змінні SMN і (SMN)i (рис. 1.40) утворюють двійковий набір:

NA = 1; = 1 (NB = 0); ;

NS = 1; EN = 1; eN = 1; .

У випадку, коли (АВ) = -7, повна п’ятирозрядна сума ( + ) складає код (рис.1.40):

EN NS S3S2S1 = ( + )5 =

= [30 - (МА + МВ)]5 = [30 – 7]5 = (23)5 = 1 0 111;

NS i I3 I2 I1 = NS S3S2S1 + 000EN = ( 0 111 + 0001) = 1 000 .

Отже, якщо (АВ) = -7 і ознака НПП(А-В) = 0, змінні SMN і (SMN)i (рис. 1.40) мають значення:

NA = 1; = 1 (NB = 0); ; NS = 0; EN = 1; eN = 0; .

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

; (1.124)

. (1.125)

Таким чином, згідно з (1.122) ¸ (1.125) переповнення функції можна здійснювати за допомогою формул:

(1.126)

(1.127)

На завершення зазначимо, що згідно з формулами (1.120) і (1.127):

тобто формула для визначення ознаки ПП суматора інваріантна до знака операції, тому залежність (1.127) вважається найпростішим апаратним способом фіксації переповнення розрядної сітки у пристроях для додавання і віднімання чисел у обернених кодах.

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

Припустімо, що потрібно обчислити різницю чисел за таких значень аргументів: А=-110; В=-111. За цих умов ( ) (рис.1.40) визначається співвідношенням:

EN NS S3S2S1 = ( + )5 =( 1 001 + )5 =

= ( 1 001 + 0 111)5 = 16 = 1 0 000 (EN=1, NS = 0, eN = 1);

NS i I3 I2 I1 = NS S3S2S1 + 000EN =

= ( 0 000 + 0001) = 0 001 ( ) .


<== попередня лекція | наступна лекція ==>
Дадавання і віднімання чисел у прямих кодах за алгоритмом 2 страница | Дадавання і віднімання чисел у прямих кодах за алгоритмом 4 страница


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн