Методические указания по выполнению задачи №3




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

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

Прямой код отрицательного числа А(2) = -0, а1 а2... апв форме с фиксированной точкой (запятой) имеет следующее машинное изображение:

 

(2)

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

 

Пусть - положительное число;

- отрицательное значение числа А(2) в обратном коде.

 

Сумма : (3)

+

Дополнительный код отрицательного числа получают добавлением единицы в самый младший разряд обратного кода числа (20 - для целых чисел, 2-k - для дробных). Основные свойства дополнительного кода:

· сумма дополнительного кода положительного числа А и его отрицательного значения представляет собой машинную единицу дополнительного кода при добавлении единицы к младшему разряду: МЕДК =

= МЕОК + 20 = 10,000...00, т.е. в результате получается число 10(2) = 2(10);

· представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы МЕОК.

 

Пример:

Дано число А(2) = 1.01011001. Необходимо представить его в прямом, обратном и дополнительном кодах.

Преобразование в обратный код (при записи над цифрой проводится черта, которая указывает на инверсное значение символа):

.

Преобразование в дополнительный код:

+

 

Все арифметические операции в ЭВМ приводятся к операции сложения. Операция вычитания приводится к операции сложения путем представления отрицательного числа в обратном (или дополнительном) коде. В таблице 2 представлена процедура выполнения операции алгебраического сложения при и .

 

Таблица 2 – Преобразование кодов при алгебраическом сложении

 

Выполняемая операция Необходимое преобразование
А + В А + В
А - В А + (- В)
- А + В (- А) + В
- А - В (- А) + (- В)

 

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

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

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

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

· над приписанными незначащими нулями выполняются все действия по общему правилу;

· сложение в прямом коде выполняется только над числами одного знака. Знак результата соответствует знаку любого операнда (числа);

· числа с разными знаками суммируются в обратном или дополнительных кодах;

· сумма обратных кодов чисел есть обратный код результата;

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

· сумма дополнительных кодов есть дополнительный код результата;

· если при сложении дополнительных кодов возникает перенос из знакового разряда, то он отбрасывается,т.е. теряется.

 

Пример.

Рассмотрим процесс сложения в двоичном коде чисел:

А(10) = 0,51 и В(10) = -0,39.

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

А(2) = 0,10000 В(2) = -0,01100

Выполним сложение в обратных кодах. Так как число А положительное, то обратный код будет совпадать с его исходным изображением:

[ A ]обр = 0 10000

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

[ B ]обр = 1 10011

 

На следующем этапе находим сумму. Процедуру сложения начинаем с младшего разряда:

[ A ]обр = 0 10000

+

[ B ]обр = 1 10011

_______________

1 0 00011

 
 


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

0 00011

+ 1

0 00100

 

Сложим числа, представленные в дополнительном коде:

[ A ]доп = 0 10000

Преобразуем в дополнительный код число В:

 

[ B ]доп = [ B ]обр + 1 мл.р. (4)

[ B ]обр = 1 10011

+ 1

[ B ]доп = 1 10100

 

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

[ A ]доп = 0 10000

+

[ B ]доп = 1 10100

1 0 00100

Возникшая единица переноса отбрасывается. В полученной сумме в дополнительном коде знаковый разряд равен 0, результат также равен положительному числу 0,00100.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: