Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.10.2024

Просмотров: 54

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В соответствии с записью Л'др ——0,100...11;

-г 10...I.

Рассмотренная форма изображения числа в машине называет­ ся нормальной. Если первая цифра мантиссы ЛА’ Р равна еди­

нице < Л ^ Р< lj, то представление числа N в этом случае

называется ненорм ализов аниым.

Врезультате арифметических операций с нормализованны­ ми числами может образоваться число в ненормализованной форме

Л/, — • /У,Лр,

где

=

О, Л/_, N-., . ■ ■ N..k N ^ k ,, . . • Л'_„,

и

 

N - 1=

• • - =N-k> N-(k Iи = '•

авто­

В этом случае нормализация в машине осуществляется

матически за счет сдвига разрядов Л //1’ на к единиц влево и

уменьшения порядка р на величину к, т. е. NХ—‘2Р ~k■

где

Д№ = 0, N-tk-i d

•••ЛДт . Нормализованное представ­

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

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

Некоторые ЭЦВМ могут (выполнять вычисления в нормаль­ ной или естественной форме, выбранной в зависимости от ха­ рактера задачи.

§ 2.3. Машинные коды

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

2*

19



помимо знака мантиссы имеется еще знак порядка, изображе­ ние которого аналогично знаку мантиссы.

Например, двоичные числа +0,01101 и —0,10011 в естест­ венной форме с закодированными знаками представляются следующим образом: 0,01101 и 1,10011. Для двоичных чисел

+ 0,11001 10 '011 и —0,10001-10 100изображение в нормальной форме соответствует записи:

1,011

о,пот

и

одоо

1,10001

порядок

мантисса

 

порядок

мантисса

со знаком

со знаком

 

со знаком

со знаком

Двоичные числа, записанные в естественной или нормальной форме, кодируются в ЭЦВМ в виде прямого, обратного или дополнительного кодов.

Изображение двоичного числа N в прямом коде [Л/|пр ос­ новано на представлении его абсолютного значения с закоди­ рованным знаком.

Если

 

 

 

 

 

 

 

 

А '= + 0 ,

АД, АД 2АД, ... ЛДт ,

го [Л/|„р=0, АД, АД2АД3.••АДШ;

если

АД, АД, А Д ,... ЛДт , то |Л']пР— 1, АД, /V. 2АД3.. •ЛДЛ1,

Л '- — 0,

где ЛД,, ЛЛ.-'J> * "

» ЛД

—двоичные цифры.

 

В общем случае формула для образования прямого

кода

двоичного числа N имеет вид Г1]

 

 

 

 

 

 

 

.V

при

V - 0,

 

 

 

1

lMl> | 1

у V

п р и

Л Д - Д 0 .

 

 

Пример. N = 0,11101,

тогда

[Л']пр =

1 — (— 0,11101) =

= 1, 11101,

 

 

 

 

 

0, 10101.

 

 

;V = + 0,10101, тогда

[jVJпр =

 

Нуль в прямом коде, как это следует из формулы

(2.1),

имеет двоякое изображение:

 

 

 

 

 

 

N = + 0.00...0

[А ,г|пр — 0,00

• ■ ■0

 

 

N = 0,00...0

[/V]„p -

1,00

. •

0

 

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

20


Однако реализация операций сложения чисел разных зна­ ков, вычитания и деления в прямом коде потребовала бы зна­ чительного усложнения структуры арифметического устройст­ ва машины, так как при этом действия над цифровыми и зна­ ковыми разрядами были бы неаналогичными. Поэтому в АУ прямой код для кодирования отрицательных чисел при выпол­ нении операций не используется, кроме действия умножения.

Для упрощения структуры машины отрицательные пра­ вильные дроби, представленные в двоичной системе, кодируют­ ся в виде дополнений до 10 или до 10— 10“ "г, гд е т —количест­ во разрядов, 10 — основание двоичной системы счисления. Код, образованный дополнением до 10, называется дополнительным кодом. Второй вид дополнения носит название обратного кода. Использование этих кодов позволяет заменить операцию вы­ читания сложением, а операцию деления свести к последова­ тельности действий сложения и сдвигов. В результате основ­ ным блоком арифметического устройства определяется сумма­ тор, в котором цифровые разряды чисел складываются анало­ гично знаковым.

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

или

[ л г 0п = 10 + W

(2.6)

[Л/]обР = 10— 10~m+ ;V,

(2.7)

 

 

где

;V = — 0, AAj Лй_2. • •N - m.

 

 

Примеры: 1 . N = —0,11001, тогда [Л/]доп = 10 + (—0,110001 ) =

=

1,00111

 

 

и

 

[yV]o6p =10 0,00001 +

(—0,11001) =

1,00110.

 

 

 

2.

Л7=—0,00011, тогда

[УУ]Д0В= Ю +

(—0,00011) =1,11101

и

[TVJoop =10 0,00001 + (—0,00011) = 1,11100.

 

Из приведенных примеров можно вывести следующие пра­

вила образования кодов:

 

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

 

1)

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

числа необходимо в знаковый разряд записать единицу, а все цифры разрядов заменить обратными значениями и к младше­ му разряду прибавить единицу;

2) для получения обратного кода отрицательного числа необходимо в знаковый разряд записать единицу, а все цифры разрядов заменить обратными значениями.

Положительные числа своего изображения в рассмотрен­ ных кодах не меняют.

Для образования дополнительного или обратного кодов от­ рицательных целых чисел могут быть использованы приведен-

21


пые выше правила. Тогда дополнения будут соответственно образованы до 10" или до 10” — 1, где п— количество разрядов целого числа.

Пример. N = — 101, тогда

ГЛЧдо„ = 10000 +

( - 101) = 1, 011

 

 

знак цифровые

и

 

разряды

+

(— 101) =_1,

010

[/Vjo6p = 10000-1

 

 

знак цифровые

 

 

 

разряды

Подобные преобразования

выполняются

над порядками,

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

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

Рассмотрим, как суммируются числа в дополнительном и обратном кодах.

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

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

[ + 'V .U + [ - Л'21доп = Л/, + [10 + ( - /V',)] = 10 -|- (Л^ - М,).

При этом возможны случаи АО—А^^-О или —N2< 0. Если АО—N2> 0, то результат суммирования положителен, и перевод из дополнительного кода не требуется, поскольку он соответст­ вует прямому коду положительного числа, т. е. [NyN2]np. Единица второго разряда числа 10 является единицей перено­ са из знакового разряда суммы и в дополнительном коде не учитывается:

[ +■ Af,]lon + [ — Л^до,, — 10 (Ay -j- /V,) — [/V, А'2!Пр-