книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие
.pdfМодифицированный код нуля имеет два значения:
м |
|
о |
О о5 = 00, |
00 |
|
- о 05= И , |
II |
|
„Два старших разряда модифицированного обратного кода называется знаковыми разрядами.
Правило получения модифицированного кода отрицатель ной дроби может быть сформулировано по аналогии с ПреДЫДУ-
ЩИМо
Для перевода отрицательного числа в модифицированный обратный код надо отбросить знак числа, записать две еди ницы перед запятой и затем каждый разряд дробной части за менить его отрицанием.
Соответствие этого правила формуле /1 1 7 / можно про верить тем же путем, что и для правила получения обратного кода.
Д о п о л н и т е л ь н ы м к о д о м числа х на зывается число, которое удовлетворяет следующей зависимо сти:
х, вели
И Л 1 8 /
9оп 10+ос , если х < 0 .
Для получения дополнительного кода правильной отрица тельной дроби необходимо в разряде целой части записать единицу, все разряды дробной части заменить их отрицаниями, затем к младшему разряду прибавить единицу. В случае воз никновения переноса из первого после запятой разряда в зна ковый разряд со знаковым разрядом нужно поступить как с разрядом целых единиц.
|
Пример. Записать |
число х ~ - 0,1101 |
в |
дополнительном |
коде |
[ - 0 ,II0 l] уоп |
ш 1,0010 + 0,0001 |
- |
1,0011. |
Проверим соответствие установленного правила формуле
90
/1 1 8 /. |
Пусть |
ос = -0 ,а ^ х а . . . |
х п , |
тогда |
согласно |
пра- |
||||
вилу |
запишем |
|
|
|
|
|
|
|
|
|
|
|
|
Moon ~ |
З'г |
• • • |
+ 0^00. |
d— |
, . |
|
|
|
|
|
у |
|
|
м разрядов |
|
|||
Теперь |
составим |
разность |
[xj |
- ас |
|
|
|
|
||
|
|
|
|
|
о |
|
|
|
|
|
[®]?<от |
= i 4acim&... v n+0,00...J'(-0,aci ссг ,..ссп ) |
|||||||||
или |
|
|
|
|
|
|
|
|
|
|
|
ȣ i , ^ |
2^/7 ^~0)£С^ сс^. . . х п+ 0^00.• . |
^ • |
|
||||||
Учитывая, |
что x L+ x L= i |
предыдущее |
вырахение |
запи |
||||||
шется |
так: |
|
|
|
|
|
|
|
|
|
|
[’■*'] |
|
••• |
I + 0,00 . . . |
I . |
|
|
|
||
Откуда |
получим , |
что |
|
|
|
|
|
|
Ы г - X - 10
или
Идоп - 10 ♦ ж •
Таким образом, видим, |
что полученное выражение |
есть |
|||||||
не что |
иное, |
как вторая |
строка формулы Д 1 8 /. |
|
|||||
М о д и ф и ц и р о в а н н ы й |
д о п о л н и т е ль- |
||||||||
н ы й |
к о д |
правильной двоичной дроби определяется по |
|||||||
формуле |
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
при |
х |
>0 |
/1 1 9 / |
|
П 1 |
|
|
|
|
|
|
||
|
|
доп |
100 + х |
при |
х < 0 . |
|
|||
|
|
|
|
||||||
|
|
|
x i х 2 . . , х п , то [А д О п ^ О ^ Х ^ |
•х'.п 1 |
|||||
|
|
|
3. . . |
х п |
получим |
|
|
|
|
L-I Г п |
' |
x i |
х г . . , |
х п |
+ |
0,00 . . . I |
|
||
|
|
|
|
|
V " ■ |
|
п разрядов
Практическое правило для получения модифицированного
до
дополнительного кода остается тем же, что и для дополнитель ного с той лишь разницей, что вместо одного берутся два зна
ковых разряда.
В заключение краткого рассмотрения различных способов кодирования правильных двоичных дробей еще раз укажем, что для положительной дроби ее прямой, обратный и дополнитель ные коды совпадают между собой.
§ Ю . Арифметические действия над правильными двоичными дробями
Изучение процесса выполнения арифметических операций в машине лучше всего начать с краткого рассмотрения принци па действия сумматоров, поскольку вид выполняемой операции зависит от того или иного типа сумматора.
Принцип построения сумматоров
Во многих машинах при передаче чисел из одного устрой ства в другое ци£ра "I" изображаете" сигналом высокого на пряжения, а цифра "О" - низким уровнем напряжения.
Одним из основных элементов в АУ таких машин является одноразрядный сумматор, схематическое изображение которого
показано на рис.4^. |
Входы его обозначены |
буквами о |
, 6 и |
Z{,a выходы - с |
и н2. Сумматор устроен |
так, что |
комбина |
ции уровней напряжения на его выходах определяются в зави
симости |
от уровней приложенных на входах напряжений |
по |
формуле |
Д 2 0 /. На основании этой формулы составлена |
табли |
ца комбинаций сигналов на выходах одноразрядного сумматора для всех возможных комбинаций уровней напряжений на его входах.
На табл.2 нетрудно увидеть, |
что данный одноразрядный |
|||
сумматор производит сложение |
трех |
одноразрядных |
двоичных |
|
чисел, подаваемых на его входы. При этом на выходе С |
появ |
|||
ляется сумма, а на выходе Z |
единица переноса, |
если |
она |
|
возникает. |
|
|
|
|
92
|
|
|
|
|
Таблица 2 |
|
Напряжения |
на входах________ Напряжения на выходах |
|||
А |
В |
г , |
|
|
е |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
I |
|
|
0 |
0 |
I |
0 |
|
1 - |
|
I |
0 |
0 |
|
|
|
I |
I |
0 |
|
|
|
I |
0 |
I |
> |
0 |
I |
I |
0 |
I |
|
||
|
|
|
|||
0 |
I |
I |
|
|
|
I |
I |
I |
|
I |
I |
|
|
С = А + В + Zt - Ю Z2 , |
|
где |
Г0, |
если |
A t g + z ^ / O ; |
|
^г~\ I, |
если |
а + в + z r > /о . |
Путей соединения между собой нескольких таких однораз рядных сумматоров получают многоразрядные двоичные сумма торы. Существуют два типа многоразрядных сумматоров*
|
I / многоразрядные |
сумматоры |
без переноса |
из старшего |
|||
разряда /ри с .44,а/$ |
|
|
|
|
|
||
|
2 / многоразрядные |
сумматоры с циклическим |
переносом |
||||
/и з |
старшего разряда |
в младший/, |
схема такого |
сумматора по |
|||
казана на рис.4 4 ,б. |
|
|
|
|
|
||
|
Операции, |
выполняемые многоразрядными |
сумматорами |
||||
указанных типов |
Д и 2 /, |
различны между собой. В суммато |
|||||
ре I |
перенос из |
старшего |
разряда, если он |
возникает, те |
ряется • В сумматоре 2 этот перенос производится в младший разряд.
Необходимо отметить, что операции, выполняемые много разрядными сумматорами, отличаются от обычного арифметиче ского сложения. Тем не менее специальное кодирование чисел позволяет, как мы увидим дальше, с помощью таких суммато ров выполнять их сложение и вычитание.
93
Операции над положительными числами, выполняемые на сумматоре без переноса из старшего разряда
Операция, выполняемая каждым одноразрядным двоичным сумматором согласно формуле /1 2 0 /, в точности совпадает с операцией, выполняемой человеком над одноименными разряда
ми положительных |
двоичных чисел |
при их |
сложении. |
|
|
Если считать, что запятая помещена после старшего |
раз |
||||
ряда сумматора, |
а |
двоичные числа |
а и 6 |
положительны |
и что |
а < 10, 6 < |
10, |
то операция, |
выполняемая сумматором |
без |
переноса из старшего разряда /обозначим ее символом © / , определяется формулой
|
а®6 = |
а+6 |
|
|
при |
а+6 < 10 ^ |
|
|
а+6-10 |
|
|
|
/1 2 1 / |
||
|
|
|
при |
а+6 >10 . |
|||
Формула показывает, |
что а®6 = 6®а . |
|
|||||
Пример |
|
|
|
|
|
|
|
|
а |
= 1,0110* |
§ - |
1,1101* |
|
||
|
|
+ 1,0110 |
|
|
|
||
|
|
1,1101 |
|
|
|
||
|
|
I I , |
ООН |
|
|
|
|
11,0011 - 10 |
- 1,0011 |
|
|
|
|
||
|
|
а@6 - |
1,0011. |
|
|
|
|
Предположим теперь, что запятая фиксирована после двух |
|||||||
старших разрядов сумматора типа I . |
Пусть а |
и 6 - положи |
|||||
тельные |
двоичные |
числа |
и |
а < 100, |
6 + |
100. |
Операцию, вы |
полняемую сумматором I над числами |
а ш 6 |
, обозначим сим |
|||||
волом |
© . Эта |
операция |
определяется формулой |
||||
|
о + 6 |
|
при а + 6 + 1001 |
/ 122/ |
|||
a<S>6=< а+6 -100 |
|
при а+6 >100, |
|||||
|
|
||||||
|
а - 11,01011* |
|
6 = 11,11010* |
|
|
94
+11,01011
11,11010
111,00101
111,00101 - 100 - 11,00101
а ® 6 - 11,00101. |
|
|
Операции над положительными числами, выполняемые |
|
|
на сумматоре с циклическим переносом |
|
|
Операция над |
положительными двоичными числами, |
выпол |
няемая сумматором |
2, совпадает с обычным сложением, |
если |
количество разрядов сумматора |
не меньше количества разря |
|
дов суммы чисел, например, |
|
|
. Ю1 |
^ |
101 |
001 |
|
010 |
НО |
|
I I I |
Если же количество разрядов сумматора окажется не достаточным, чтобы вместить сумму, то происходит цикличес кий перенос из старшего разряда сумматора в младший.
Например, |
+ 101 |
100
{-1ТОГ-)
Здесь единица старшего разряда должна быть перенесена в младший. Такой перенос равноценен потере переноса из стар шего разряда в следующий по старшинству /которого в сумма торе не существует/ и одновременному прибавлению единицы в младший разряд.
Если запятая фиксирована после старшего разряда сумма
тора, а числа а и 6 положительны и а < 10, |
6 |
< |
1 0 ,то опе |
|
рация, выполняемая сумматором 2 |
/обозначим |
ее |
символом в/, |
|
определяется формулой: |
|
|
|
|
а + ё , |
если а + ёк 10 |
/1 2 3 / |
||
а Ш б - |
|
|
|
|
если а+6 ^ |
|
|
||
а + 6 -10+10"% |
10 |
щ |
95
где п - количество |
разрядов сумматора, |
отведенных |
для |
|||
дробной части суммы. Считаем, что |
дробные |
части |
||||
чисел о |
и |
б |
представлены каждая |
п цифрами. Из |
||
формулы /1 1 |
5 / |
видно, что а В б |
= б S |
o . |
|
|
Пример. |
|
|
|
|
|
|
о = 1,0101* |
5 |
= 1,1100* |
|
|
|
. 1,0101 I.IIOO [-11,000;
11,0001 - 10 - 1,0001
|
|
1,0001 |
|
|
|
|
|
|
+ 0.0001 |
|
|
|
|
||
|
|
1,0010 |
|
|
|
|
|
|
|
|
|
а й |
6 = 1,0010. |
|
|
Считая, что запятая расположена после двух |
старших |
||||||
разрядов |
сумматора, |
а |
числа а |
и б |
положительны и а ^ 100, |
||
6 ^ 100, получим формулу, определяющую операцию |
Щ в ы |
||||||
полняемую над |
числами |
а и б |
сумматором с циклическим пе- |
||||
реносом |
* |
|
|
|
|
|
|
|
см-б |
|
|
при |
100*; |
|
|
аШб=• |
-ioo+io"n |
при |
а + б ^ 100 . |
|
|||
|
а + б |
|
|||||
Пример |
|
|
|
б = 11,11000* |
|
||
|
а |
- 11, 01001* |
|
||||
|
|
. |
11,01001 |
|
|
|
|
|
|
|
11,11000 |
|
|
|
|
|
|
гш,оооо; |
|
|
|
||
|
111,00001 |
- |
100 = 11,00001 |
|
|||
|
|
|
11,00001 |
|
|
|
|
|
|
+ |
0,00001 |
|
|
|
|
|
|
|
11,00010 |
|
|
|
а ш ' б « 11,00010
96
Алгебраическое сложение в дополнительном коде |
|
||||
Рассмотрим |
использование сумматора без переноса |
из |
|||
старшего |
разряда |
для выполнения алгебраического сложения |
|||
правильных двоичных дробей. |
|
||||
Пусть х |
и |
у |
- двоичные числа, удовлетворяющие усло |
||
виям |
|
|
|
|
|
|
|
ос |
|
< 1 ; |
|
Первые |
два |
неравенства имеют место всегда для |
чисел |
||
х и ^ |
, поступающих на сумматор из памяти мащины, в |
ко |
торой запятая фиксирована перед первым цифровым разрядом» Третье неравенство необходимо, чтобы результат операции мог быть снова перенесен в ячейку памяти.
Доказано, что
[Х] г ® [ ф " ‘ [ж+Ф " • |
Л25/ |
Ранее мы показали, что сумматор без переноса из стар |
|
шего разряда выполняет над положительными числами такую же |
|
операцию © , поэтому его можно использовать для |
суммиро |
вания дополнительных кодов чисел. |
|
Заметим, что вычитание чисел легко сводится к |
сложению ' |
по формуле |
|
=х + (-Ц)
и, следовательно, при сложении дополнительных кодов вели
чин |
[х] |
и |
[ - у ] д о п на выходе такого сумматора полу |
|
чится |
величина |
д0п , |
|
|
|
|
|
• |
Л 2 6 / |
Покажем на примерах алгебраическое сложение правиль ных двоичных дробей, закодированных дополнительным кодом.
Пример I
И ‘ 1 ; li/ И |
• |
7 |
97 |
Х« |
0,0001001 |
[а:] ?ол= 0,0001001— |
у - |
0,1100001 |
[Ч\эоп = 0,1100001----- |
Х + у - |
0 ,I I 0 I 0 I 0 ~ ---------- |
[0С+ у] ynn = 0,1101010, |
~ |
0,0001001 ----------------------------------------------------------------- |
|
|
® |
0,1100001 -------------------- |
------------------------------------ |
------- |
Ц т Щ у \ 0„ - |
0,1X01010------------------------------------ |
1 |
|
|
Пример 2 |
|
|
|
X = 0,1100001 ----- - |
[о^оп » 0,1100001-------- |
|
|
|
-0,0001001 ------- |
[ ^ 0„ = 1,1110111----- |
|
х - у |
« 0,1011000 ---- -[сс |
,0,1 ОПООО |
|
|
0,1100001 ----------------------------- |
-------------- |
|
® |
I , I I I О Ш - ----------------------------------------- |
|
|
|
° ’1011000 ------------------------------ |
^ |
Напомним, что единица переноса из старшего разряда сумматора теряете". Сравнивая числа,, образовавшиеся на вы ходе сумматора, в обоих примерах с числами, полученными в результате обычного сложения двоичных дробей и кодирования их, убеждаемся, что сумматор действительно выполняет сложе ние и вычитание дополнительных кодов.
Покажем, что при |
|х |< 1 ,|у |< 1 и \ х + у \ > 1 |
происхо |
|
дит переполнение разрядной сетки. |
|
||
Пример 3 |
|
|
|
X = 0,0001001 |
---------0,0001001---------------------- |
|
|
у = 0,1111101 |
-------- ~ Щ Г п - 0,1111101— | |
||
х + у = 1,0000110 |
дополнительного кода |
этого |
|
числа |
не |
существует |
|
0,0001001
0.IITTT0T
\х]^оп+{^]^оп "число на выходе сумматора
98
Пример 4
х= -0,0001101
у= -0 ,Ш И 0 1 -------~Ш 9оп 1,0000011 -
Х+1 = -1,00001110 дополнительного кода этого
числа не существует.
1 ,1 1 1 0 1 1 1 -
Ф1,0000011-
Щ90П®[&Г » = 0,1111010 число на выходе сумматора.
|
|
Явление, |
когда |
(Ьс+ у)»1,как |
мы уже отмечали, называет- |
||||||||
ся |
переполнениеми |
разрядной |
сетки. |
|
|
||||||||
|
|
В данном случае |
переполнение |
разрядной сетки |
сумма |
||||||||
тора |
|
выражается |
в |
том, что на выходе сумматора получается |
|||||||||
результат, |
который |
не |
является дополнительным кодом |
суммы |
|||||||||
заданных чисел ос и ^ |
, 'поскольку |
|
дополнительный код |
|
этой |
||||||||
суммы не существует. |
|
|
|
|
|
|
|||||||
|
|
Эти примеры показывают, что признаком переполнения раз |
|||||||||||
рядной |
сетки может |
служить факт |
несовпадения знаковых |
раз |
|||||||||
рядов |
величины |
[зс]^0л |
, |
|
и числа на выходе сумматора. |
||||||||
|
|
Легко видеть, что для обнаружения переполнения разряд |
|||||||||||
ной |
сетки необходимо выполнить следующие операции: |
|
|
||||||||||
|
|
1 . Сравнить целые части кодов |
|
|
|
||||||||
|
|
а / |
в |
случае |
их несовпадения |
продолжать работу; |
|
|
|||||
|
|
б / |
в случае их совпадения выполнить операцию 2. |
|
|
||||||||
|
|
2. |
Сравнить целую часть |
числа |
на выходе сумматора |
с |
|||||||
целой |
частью кода |
[ос]?ог) или |
[ у ] доп . |
|
|
||||||||
|
|
а / |
в |
случае |
их |
совпадения продолжать работу; |
|
|
|||||
|
|
б / |
в |
случае |
их несовпадения |
выдать сигнал о переполне |
|||||||
нии разрядной |
сетки |
в УУ. |
|
|
|
|
|
Алгебраическое сложение в модифицированном дополни тельном коде
Сложение и вычитание правильных двоичных дробей в модифицн-
99