Здавалка
Главная | Обратная связь

Арифметические операции в ЭВМ



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

Сложение производится поразрядно, начиная с младших разрядов. Если сумма Si чисел i-х разрядов двух слагаемых превышает или равна основанию Р системы счисления, то в i-й разряд суммы записывается разность Si - Р, а к следующим (i +1)-м разрядам слагаемых переносится 1 в виде дополнительного слагаемого.

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

Обратный и дополнительный коды положительного числа, есть само число.

Обратный код отрицательного числа получается путём вычитания символа каждого его разряда из числа (Р-1), где Р – основание данной системы счисления. Применительно к двоичным числам эта операция равносильна инвертированию. Код представления результата определяется по следующему правилу. Если перенос из старшего разряда равен 1, то результат положителен, представлен в прямом коде, но на 1 меньше истинного. В противном случае результат отрицателен и представлен в обратном коде.

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

Обратные преобразования производятся по тем же правилам.

В силу простоты представления результата вычитания, в ЭВМ используется дополнительный код.

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

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

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

- результат меньше 1/2, то есть старшие разряды мантиссы нулевые. Если при этом результат представлен в прямом коде, мантисса сдвигается влево до тех пор, пока первая значащая 1 не окажется в старшем разряде. Если же результат представлен в обратном или дополнительном коде (отрицательный), производится сдвиг влево до появления в старшем разряде первого значащего нуля. При каждом сдвиге значение порядка уменьшается на 1;

- результат больше 1, то есть разрядная сетка переполнена. В этом случае мантисса сдвигается вправо на один разряд с одновременным увеличением порядка на 1.

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







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.