книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие
.pdfрованном дополнительном коде осуществляется по формулам:
/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