Смекни!
smekni.com

Выполнение операций алгебраического сложения и сдвига в ЭВМ (стр. 1 из 4)

СОДЕРЖАНИЕ

Введение

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

1.Формальные правила двоичной арифметики

1.1 Операция алгебраического сложения в ЭВМ

1.1.1 Прямой код

1.1.2 Сложение в прямом коде

1.1.3 Дополнительный код

1.1.4 Алгебраическое сложение в дополнительном коде

1.1.5 Обратный код

1.1.6 Сложение в обратном коде

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

2.1 Алгоритм сложения чисел в машинах с плавающей запятой

2.2 Денормализация чисел. Виды денормализации и методы Устранения

3.Округление чисел в ЭВМ

3.1 Округление чисел в прямом коде

3.2 Особенности округления чисел, заданных инверсными кодами

Литература


Введение

Тема реферата «Выполнение операций алгебраического сложения и сдвига в ЭВМ».

В процессе написания реферата нам предстоит ознакомиться с :

- формальными правилами двоичной арифметики;

- операциями алгебраического сложения в ЭВМ;

- операциями сдвига в ЭВМ;

- округлением чисел в ЭВМ.


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

1.Формальные правила двоичной арифметики

Популярность двоичной системы счисления во многом объясняется простотой правил двоичной арифметики.

Сложение Вычитание Умножение
0+0=0 0-0=0 0х0=0
0+1=1 0-1=1 (заем) 1 0х1=0
1+0=1 1-0=1 1х0=0
1+1=0 1 (перенос в ст. разр) 1-1=0 1х1=1

Основной операцией в ЭВМ является сложение. По способу ее выполнения арифметические устройства могут быть параллельного, последовательного, параллельно-последовательного действия. Последовательное суммирование должно выполняться на основании следующего равенства:

ai+biі-1= Siі

1.1 Операция алгебраического сложения в ЭВМ

При вычислении суммы двух чисел возможны два варианта: слагаемые имеют одинаковые знаки и слагаемые имеют различные знаки. В результате этого алгоритмы получения суммы для каждого из них различны.

Для операндов с одинаковыми знаками:

1. Сложить два числа.

2. Сумме присвоить знак одного из слагаемых.

Алгоритм получения алгебраической суммы:

1. Сравнить знаки слагаемых, и если они одинаковы, то выполнить сложение по первому алгоритму.

2. Если знаки слагаемых разные, то сравнить слагаемые по абсолютной величине.

3. Вычесть из большего меньшее.

4. Результату присвоить знак большего слагаемого.

Из этого следует, что первый алгоритм проще второго. Следовательно, желательно преобразовать отрицательные числа таким образом, чтобы операцию вычитания заменить операцией сложения, т.е. S=A+(-B).

Для того, чтобы решить эту проблему, необходимо вводить специальные коды: прямой, обратный, дополнительный.

Способ построения этих кодов определяется функциями кодирования, которые должны обеспечить:

1. Запись алгебраического знака числа.

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

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

1.1.1 Прямой код

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

Согласно определению, функция кодирования чисел в прямом коде правильных дробей вида: А=азн a-1 a-2... а-nзапишется следующим образом:


Величина А будет определяться в прямом коде следующим выражением:

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

.

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

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

Пример записи числа в прямом коде:

А=+0,101011 Апр= 0,101011;

В=-0,110011 Впр=1,110011.

1.1.2 Сложение в прямом коде

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

Рассмотрим возможные 4 случая получения суммы чисел в прямом коде.

1) А0, В0, С0.

А=+0,101001 В=+0,000101

Апр=0,101001 Впр=0,000101 Спр=А+В

+0,101001

0,000101

0,101110

2) А0, В‹0, С0.

А=+0,101001 В=-0,000101

Апр=0,101001 Впр=1,000101 Спр=А-|В|

-0,101001

1,000101

0,100100

3) А‹0, В0, С‹0.

А=-0,101001 В=+0,000101

Апр=1,101001 Впр=0,000101 Спр=1+(|А|-|В|)

-0,101001

0,000101

0,100100 Спр=1+0,100100=1,100100

4) А‹0, В‹0, С‹0.

А=-0,101001 В=-0,000101

Апр=1,101001 Впр=1,000101 Спр=1+|А|+|В|

+0,101001

0,000101

0,101110 Спр=1+ 0,101110=1,101110

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

1.1.3 Дополнительный код

В дополнительном коде операция вычитания заменяется операцией алгебраического сложения. При этом знаковый разряд и цифровая часть рассматриваются как единое целое.

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

При этом для дробных отрицательных чисел всегда имеет место: |А|+|[A]Д |=1

Геометрическая интерпретация дополнительного кода правильной дроби при р=2 представлена на рис. 1.1.


-1 А<0 A>0 +1 +2

A>0 A<0 Область изображений

Рисунок 1.1- Геометрическая интерпретация дополнительного кода

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

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

Дополнительный код положительного числа совпадает с его представлением в прямом коде.

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

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

[A]пр=0,10110100; [A]дк=0,10110100;

[Â]пр=1,10111101; [В]дк=1,01000011.

1.1.4 Алгебраическое сложение в дополнительном коде

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

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

1) А›0, В›0, С›0.

А=+0,101101 В=+0,000111

Апр=0,101101 Впр=0,000111

Адк=0,101101 ВДК=0,000111 Сдкдкдк

+0,101101

0,000111

0,110100

2) А›0, В‹0, С›0.

А=+0,101101 В=-0,000111

Апр=0,101101 Впр=1,000111

Адк=0,101101 ВДК=1,111001 Сдкдкдк

+ 0,101101

1,111001

1¬0,100110 (1 переноса из знакового разряда суммы не учитывается)

3) А‹0, В›0, С‹0.

А=-0,101101 В=+0,000111

Апр=1,101101 Впр=0,000111

Адк=1,010011 ВДК=0,000111 Сдкдкдк

+ 1,010011

0,000111

1,011010 (Спр= 1,100110)

4) А‹0, В‹0, С‹0.

А=-0,101101 В=-0,000111

Апр=1,101101 Впр=1,000111

Адк=1,010011 ВДК=1,111001 Сдкдкдк