Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOM / Мельник А. Архітектура комп'ютера.doc
Скачиваний:
1832
Добавлен:
17.05.2015
Размер:
6.19 Mб
Скачать

6.4.3. Віднімання двійкових чисел

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

Si= хi XOR уi XOR bi

bi+1=(xi AND уi) OR (xi-AND bi) OR i AND bi)

b0=0

Ці формули отримані з наступної таблиці істинності (табл. 6.6).

214

Таблиця 6.6

bi

Xi

уi

Si

сі+1

0

0

0

0

0

0

0

1

1

1

0

1

0

1

0

0

1

1

0

0

1

0

0

1

1

1

0

1

0

1

1

1

0

0

0

1

1

1

1

1

Де: Si.- і-й розряд різниці, хi, уi - і-ті розряди зменшуваного та від'ємника відповідно, bi. - розряд запозичення.

Приклади виконання операції віднімання двійкових чисел без знаків приведено на рис. 6.12.

Коли числа представлені в оберненому або доповняльному кодах, то можна використа­ти інший метод: потрібно змінити знак від'ємника, всі його розряди потрібно інверту­вати, а для доповняльного коду, крім того, збільшити від'ємник на одиницю молодшого розряду, і тоді просто додати до зменшуваного отримане число S = х + (NOT(y) + 1 м.р.).

6,4.4. Множення двійкових чисел

Множення може проводитись в прямому, оберненому та доповняльному кодах. Знак результату операції множення можна визначати окремо. Для цього використовується операція XORнад знаковими розрядами співмножників відповідно до табл. 6.7.

Таблиця 6.7

■ знак Х

знак Y

Знак результату

0

0

0

0

1

1

1

0

1

_ 1

1

0

При виконанні множення двох операндів однакової розрядності розрядність резуль­тату збільшується вдвічі, порівняно з розрядністю множників.

При виконанні множення операндів, представлених в прямому коді, їх модулі мно­жаться як цілі двійкові числа без знаків, або як дробові числа без знаків, оскільки про-

215

цедура множення в обох випадках та ж сама. При виконанні множення операндів, пред­ставлених в оберненому коді, всі розряди від'ємних чисел потрібно інвертувати, а далі проводити множення так само, як над даними, представленими в прямому коді. Разом з тим, потрібно зауважити, що існують методи прямого множення операндів, представле­них в обернених кодах.

6.4.4.7. Множення цілих двійкових чисел без знаків

Якщо позначити множене буквою X,а множник буквою Y,причому представити Yу вигляді суми його двійкових розрядів

то результат Zмноження двох цілих двійкових чисел без знаків визначається з ви­разу:

З наведеного виразу видно, що операція множення двійкових чисел зводиться до операції логічного множення множеного (множене - перший множник) на розряди множника та підсумовування отриманих результатів з їх зсувом на кількість розрядів, рівну відповідному показнику ступеня у виразі. Граф алгоритму множення має вигляд, показаний на рис. 6.13.

Лінійка операторів ANDформує п n-розрядних результатів логічного множення множеного на розряди множника, які зсуваються праворуч на R.(і = 1, 2, ..., п-1) роз­рядів. Ці результати називаються частковими добутками. Оператор із знаком додавання тут означає багатомісну операцію додавання часткових добутків.

216

Соседние файлы в папке AOM