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

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

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

Модифицированный код нуля имеет два значения:

м

 

о

О о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

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