Реферат: Выполнение операций алгебраического сложения и сдвига в ЭВМ

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

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

Пример 1.

[А]м ок =00,101101 [В]м ок =00,011100

00,101101

00,011100

01,001001 - положительное переполнение

Пример 2.

[А]м ок =11,010010 [В]м ок =11,100011

11,010010

11,100011

1←10,110101

à + 1

10,110110 - отрицательное переполнение.


2.Операция сдвига в ЭВМ

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

Сдвиг прямого кода числа на k разрядов вправо эквивалентен умножению этого числа на 2- k . Ввиду того, что при сдвиге вправо младшие разряды сдвигаемого числа выходят за пределы разрядной сетки машины и теряются, погрешность представления сдвинутого кода числа имеет отрицательный знак для кодов положительных чисел и положительный знак для кодов отрицательных чисел. Для ее уменьшения необходимо предпринимать округление чисел. При сдвиге прямого кода отрицательной дроби сдвигается только ее мантисса, а знак остается без изменения.

Пример 1.

А= 1,011010, k=1 (левый сдвиг) k=-1 (правый сдвиг)

21 хА=1,110100 2-1 хА=1,001101

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

Сдвиг положительного числа влево или вправо в дополнительном или обратном кодах ничем не отличаются от сдвига положительного числа в прямом коде.

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

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

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

Пример 2.

Сдвиг в обратном коде:

[А]о = 1,011010, k=1 (левый сдвиг) k=-1 (правый сдвиг)

К-во Просмотров: 382
Бесплатно скачать Реферат: Выполнение операций алгебраического сложения и сдвига в ЭВМ