Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие

.pdf
Скачиваний:
13
Добавлен:
30.10.2023
Размер:
13.42 Mб
Скачать

рованном дополнительном коде осуществляется по формулам:

/1 2 7 /

 

 

 

 

 

 

/1 2 8 /

Покажем применение этого кода на примерах.

Пример

I

|сс|<4

 

и

|эс + у .|< ^ °

х =

0,1100001

----------------------

 

Joe] *0„ = 00,1100001—

Г

0 ,0 0 1 1 1 0 1

------------------

 

-- 00,0011101-

= о . и п п о

-------------

 

-p c + y j^ yOCMiniio

.00,1100001

------------------------------------------

 

"---------

0 00,0011101

-------------—--------------------------------------

Н р т + Й 9 » " - 0С’П 1 Ш 0

-------------------------------

Г

Пример 2

|ос|<4

 

и

\х + у\<1 -

ос =

0,0011110

 

 

*]£„,- оо.осшио— |

 

-0,1110000

------------------

 

°п= 11»001000° - |

х + у = - 0 ,1 0 1 0 0 1 0 -----------------

 

-^ + yJ?jnn= п , о ю т о ,

,

оо,оошю

------ —--------------------------- ----------

ff\1

 

7

 

 

 

 

 

11,0010000

------------------------------------------------------

 

 

 

1 1 ,0 1 0 1 1 1 0 ------------------------------------------

 

 

П р и м е р

3

Joe | - 4

i | ^ | <

4

n j x + ^ | > d

100

х=о,шош

^ =0,1100011

X+y. =1,1011010

0 0 ,Ш 0 Ш © 00,1100011

[ a § on=00,1110111—

Щрл =00»II000II1

Мод.доп.код этого числа [не существует, так как это число больше единицы.

Ы

оол®'Ы ооп = 01,1011010

" числ0 на выходе суммато-

L

J *

^

ра*

Полученный результат нельзя назвать модифицированным

кодом какого-либо числа.

 

П р и м е р

4

 

 

 

Х > 0,Ш 01 И ----------- - И р т -и .0 0 0 1 0 0 1 -

*р-о,пооои

-------- ^М 9°^ =11,001II01—|

эс+у=1,1011010

Мод.доп.код этого числа

не

 

существует

 

11,0001001

 

 

© И ,0 0 Ш 0 1 -

 

 

H ^ ® ,M ^ = I0 ,0 I°0II0

” числ0 на вых°Де сумматора.

Здесь такие число на выходе сумматора не является

мо­

дифицированным дополнительным кодом какого-либо числа.

 

Б последних двух примерах переполнение разрядной

сетки

сумматора выражается в том, что на выходе сумматора получа­

ется,

так же как и в

случае

дополнительного

кода, резуль­

тат,

который нельзя

назвать

модифицированным дополнитель­

ным кодом какого-либо

числа.

 

 

 

Признаком переполнения разрядной сетки при использова­

ний модифицированного

дополнительного кода

служит факт не­

совпадения цифр двух старших разрядов на выходе сумматора.

Для обнаружения переполненной разрядной

сетки

необходимо

в

этом случае

сравнить два

старших разряда числа

на

выхо­

де

сумматора;

 

 

 

 

 

 

 

а / если

они совпадают,

т .е . "00" или

" II" ,

то

работа

сумматора продолжается!

 

 

 

 

 

 

б / если

они не совпадают, т .е . "01"

или "10",

то

вы­

дается сигнал о переполнении разрядной сетки в управляющее устройство.

Таким образом, при использовании модифицированного до­ полнительного кода обнаружение переполнения разрядной сет­ ки требует меньше операций, чем при использовании дополни­ тельного кода.

Алгебраическое сложение в обратном коде

Рассмотрим применение сумматора с циклическим перено­ сом для выполнения арифметических операций над относитель­ ными числами.

Найдено, что для осуществления алгебраического сло­ жения двоичных чиселхи ^ , удовлетворяющих условиям:

И < l ; до < * ; \х + у\ { *

на сумматоре с циклическим переносом необходимо предста­ вить эти числа в обратном коде.

Доказано, что если использовать операцию Щ , то ока­ зываются справедливыми зависимости:

[х ]о5 Ш Ы о 5 = [x + if] о5 ?

Д 2 9 /

 

Н о 5 В М « 1 = [X ' ? U •

Д ЗО /

 

Припоминая, что сумматор с циклическим переносом осу­ ществляет операцию ЕВ , приходим к выводу о возможности его использования для выполнения алгебраического сложения обратных кодов вышеуказанных чисел ос и и. .

Поясним на примерах выполнение сложения и вычитания

обратных кодов

чисел х

и у . .

Пример I

\х\ < {

; | ^1 <4 и | х + у | с 4 .

х = 0,1100011

------------------- -- Щ об= 0,1100011-------

-0,0010011

----------------- -- Що5= IfHOIIOO—

зс+у = 0,1010000 -----------------

|jr+ у ]05 = ,0,1010000

0,1100011---------------------------------------------------------

 

+ 1,1101100 -----------------------------------------------------

10,1001111

Единица старшего разряда этого числа должна быть перенесе­ на в младший /циклический перенос/

. 0,1001111

_______ 0,0000001

[ 4 # > М о5 -

О.МОООО-------------------------------

1

Пример 2

|х |< 4

; | ^ | < 4

И |х + ^ |< 4 .

 

Х=

-0,1001101----------------

1,0110010—

 

у=

-0,0101011---------------

~ M o 5 s I jIOIOIOO—|

дС + Ц = -0,1111000 -------------

|сс+^] о8= .1)0000111

 

 

+

1 ,0 1 1 0 0 1 0 ---------------------------------------------

 

 

 

 

1 ,1 0 1 0 1 0 0 -------------------------------------------

 

 

 

r II,OOOOIIQ

 

[ 4 ^ Ц = Т ^ о б о Ш --------------

------------- 1

5ример„3

|х|<4

|^|< 4 и |эс+^.| > { .

ЮЗ

 

х =

0,1101101-----------

 

- [ х ] об= 0,1101101-------

 

 

 

 

0,1011001-----------

 

^ [у ]о5=0,Ю И001— |

 

х+у. = 1,1000110

Обратного кода

этого числа

 

 

 

 

 

не

существует

 

I

 

га

0,1101101-------------------------------------------

 

 

 

1

 

Ш 0,1011001----------------------------------------

 

 

 

 

х од Ш У о Г 1 »1 0 0 0 1 1 0

 

 

 

 

Полученный

результат

1,1000110

является обратным

ко­

дом отрицательного

числа

-0,0111001, которое

не равно

сум­

ме заданных положительных чисел. Это явление также носит

название переполнения разрядной сетки.

 

 

Пример 4

joc|

^

\ |у| < 1

и

jx+^.| >i .

 

 

 

X

= -0,1101101------------

 

‘М 05=1’001001°

 

 

^

= -0,1011001------------

 

^ - ] o5= i , oiooiio

 

Х +у.

= -1,1000110

Обратного кода

этого числа

 

 

 

 

 

не

существует

 

 

 

 

+ 1,0010010

 

 

 

 

 

 

 

1,0100110

 

 

 

 

 

 

rio,oiiiooq

 

 

 

 

[4-5® М ^ 0 ' 0111001

Полученный результат на выходе сумматора является об­ ратным кодом положительного числа 0,0111001, которое не рав­ но сумме заданных отрицательных чисел, т .е . в данном случае

тоже произошло переполнение разрядной сетки.

 

Итак, признаком переполнения разрядной сетки при

ис­

пользовании

обратных кодов служит появление единицы в целой

части

числа

на выходе сумматора, когда целые части [x]0j и

[^]

об были НУЛЯМИ> ил*1» наоборот, появление в целой час-

104

 

 

ти на

выходе сумматора нуля, когда целые части

и

j'y.j

были единицами.

 

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

I / сравнить

целые части

jx j05

и j^J 0§ . В

случае

их

несовпадения продолжать работу; в случае

совпадения выпол­

нить операцию 2;

 

 

 

 

 

 

2 / сравнить

целую часть

|x ] 0j

или

|у ]0£.

с целой

ча­

стью числа на выходе сумматора. Если они совпадают, то сум­ матор должен продолжать работу; если не совпадают, то дол­ жен быть выдан сигнал о переполнении разрядной сетки.

Алгебраическое сложение в модифицированном обратном коде

Для алгебраического сложения на сумматоре с цикличес­

ким переносом правильных двоичных дробей х

и у. можно вместо

операции

ЕВ воспользоваться

операцией ЕЗ .

При этом

опера­

цию Ш

следует выполнять не

над самими слагаемыми, а

над

их модифицированным обратным кодом.

 

 

Для модифицированного обратного кода правильных двоич­

ных дробей справедливы

выражения:

 

 

 

И Об И И

= [х + ^1 05 ;

 

Л 3 1 /

 

[ * а ‘

 

 

 

м

Покажем это сложение на примерах.

 

 

Пример I

 

 

 

 

 

|x |< i

 

; \х+у\<{ .

 

 

105

 

X

=0,0011110

 

■[ас] MoS =00,0011110----

 

у. = -0,1110000---------

 

^ o f f

= II»0 0 0 IIII~ |

 

x + y = -0,1010010— J\x +y] ^

=11,0101101

 

 

, 00,0011110-----------------------------------------

 

 

 

 

11,0001111-

--------------------------------------

 

 

 

 

= iijO io n o i -----------------------------

 

 

 

ПримерЛ

\x\

< i

; |y |< 4

;

| * + y | < 4 . ■

 

 

X = -0 ,III0 0 0 I----------

 

[x ] ^=11,0001110—|

 

 

^=-0,0000111 ----------

 

=11,1111000-1

 

x + ^ = - 0 ,IIII0 0 0 ------

 

-[x +

^ =11,0000111

 

 

+I I ,0 0 0 I I I 0

- ---------------------------------------

 

 

 

 

11,1111000-

--------------------------------------

 

 

 

 

r II,0000IIQ

 

 

 

 

* п.оооош------------

 

 

1

ДР.имер 3

|x

+ y.|

> { ; | acjc

i

*, | ^| < { .

 

x= o,iiioiii---

 

~[х]£г оо,шош

 

у = 0,1100011 ----------

 

[ y ] ^0 0 ,1100011

 

x + y = 1,1011010

Модифицированный обратный

 

 

 

 

код этого числа не существу­

 

 

,00,1110111

ет.

 

 

 

 

 

 

Г I м т 'п м

00 .ПООРИ

-

число на

выходе сумматора.

Iх ]об ® [У] ^-OijIOIIOIO

106

Вид числа, полученного на выходе сумматора, свидетель­ ствует о переполнении разрядной сетки.

Пример 4 |oc+i^|> i .

х = -

0 ,1 И 0 Ш --------

[ х ]

ои5=

11,0001000

^ = -

0,1100011------- -

| у |

JJy =

11,0011100

х + ц к - 1,1011010 Модифицированный обрат­ ный код этого числа не существует.

+11,0001000

11,0011100

[—но, 0100109

ШШ * 10,Ш001Ш

Полученный здесь результат также говорит о переполне­ нии разрядной сетки.

Контроль за переполнением разрядной сетки в случае опе­ рации над модифицированным кодом чисел осуществляется так же, как и при использовании модифицированного дополнитель­ ного кода.

Умножение чисел в машинах с фиксированной запятой В машинах с фиксированной запятой числа умножаются в

прямом коде.

Знак произведения определяется сложением цифр

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

при

сложении единица старшего разряда /перенос/ теряется.

Ре­

зультат, получающийся при сложении по модулю два,

полностью

соответствует

известному

правилу алгебры

о знаке

произве­

дения:

 

 

 

 

 

 

О + 0 = 0}

О +1=1;I

+ 0 = 1 *

1 + 1 =

О*

 

 

О ) (+) -

СО» СО СО * СО»

(-) (+)

= СО»

С-)

СО -

 

 

 

 

 

-

со.

107

После определения знака произведения перемножаются са­

ми числа.

Процесс умножения может осуществляться со сдвигом мно­ жимого влево или вправо. В первом случае умножение начина­

ется с младшей

цифры множителя, во втором -

со старшей.

Пример

 

 

 

Сдвиг множимого

Сдвиг множимого

 

влево

 

вправо

у

IIOI

 

II0 I

 

Ю Н

 

ЮН

.

I I 01

,

IIOI

IIOI

 

IIOI

IIOI

 

 

IIOI

ЮООИН

 

ЮООНИ

Условились

произведение

множимого на какой-либо раз­

ряд множителя называть частным произведением. При умноже­ нии двоичных чисел частное произведение равно множимому /если в соответствующем разряде множителя стоит единица/

или нулю /если соответствующий разряд множителя равен ну­ лю/. Поэтому умножение фактически состоит из последователь­ ных сдвигов множимого и сложения частных произведений, по­ лучившихся в результате сдвигов.

деление двоичных чисел в машинах с фиксированной запятой

Выполнение деления двоичных чисел в машине с фиксиро­ ванной запятой в отличие от умножения возможно лишь в том случае, когда делимое по абсолютней величине меньше дели­ теля. Деление начинает'я о определения возможности деления. Для этого из модуля дел мого в& ’дается модуль делителя. Если полученная разность отрицательна, то деление возможно. Если разность положительна, т .е . делимое больше делителя, то деление невозможно вследствие переполнения разрядной сет­

ки.

Деление двоичных чисел выполняется аналогично делению

десятичных чисел и сводится к ряду последовательных вычита­ ний делителя из делимого и сдвигу делителя вправо или ос­ татка влево на один разряд при каждом шаге деления. Знак частного определяется сложением знаковых разрядов делимого и делителя на одноразрядном сумматоре.

Рассмотрим способ деления "без восстановления остатка? Определение разрядов частного при этом способе начина­

ется с того, что к разности

делимого и делителя

прибавляет­

ся делитель, сдвинутый на один разряд вправо.

 

Если знак первого остатка положительный, то

в старший

разряд частного записывается

"I", если отрицательный, то

записывается "О".

 

 

Для получения второго разряда частного из полученного остатка вычитается делитель, сдвинутый на один разряд впра­ во, если знак остатка положительный, и прибавляется, если знак остатка отрицательный. По знаку нового остатка опреде­ ляется второй разряд частного и т .д . Процесс повторяется до получения требуемого количества разрядов частного.В рас­ смотренной последовательности действий при делении двоич­ ных чисел вместо сдвига делителя вправо можно сдвигать ос­

таток влево

 

на один разряд при каждом шаге деления.

Пример

 

 

 

найти

х :-сс1: х г ,

где

делимое х 4 =

-0,10101001;

joc^l пр = 1,10101001;

делитель х,=

+0,11010000;

jxjnp = 0,11010000.

Деление в данном примере возможно, так как выполняет­

ся условие

|х4|< |х £| .

 

Знак частного определяется сложением знаковых разря­ дов делимого и делителя по модулю два

1 + 0 = 1 .

Вычитание делителя заменяем сложением дополнительных кодов:

109

Соседние файлы в папке книги из ГПНТБ