Арифметические операции в ЭВМ
Среди арифметических операций основными являются операции сложения и вычитания, поскольку помимо самостоятельного значения, они лежат в основе операций умножения и деления, соответственно.
Сложение производится поразрядно, начиная с младших разрядов. Если сумма Si чисел i-х разрядов двух слагаемых превышает или равна основанию Р системы счисления, то в i-й разряд суммы записывается разность Si - Р, а к следующим (i +1)-м разрядам слагаемых переносится 1 в виде дополнительного слагаемого.
С целью удобства технической реализации операция вычитания заменяется операцией сложения. При этом исходные операнды (числа, участвующие в операции) должны быть представлены в обратном или в дополнительном коде.
Обратный и дополнительный коды положительного числа, есть само число.
Обратный код отрицательного числа получается путём вычитания цифры каждого его разряда из числа (Р-1), где Р – основание данной системы счисления. Применительно к двоичным числам эта операция равносильна инвертированию. Код представления результата определяется по следующему правилу. Если перенос из старшего разряда равен 1, то результат положителен, представлен в прямом коде, но на 1 меньше истинного. В противном случае результат отрицателен и представлен в обратном коде.
Дополнительный код отрицательного числа образуется в результате арифметического добавления 1 к его обратному коду. Код представления результата определяется по следующему правилу. Если перенос из старшего разряда равен 1, то результат положителен и представлен в прямом коде. В противном случае результат отрицателен и представлен в дополнительном коде.
Обратные преобразования производятся по тем же правилам.
В силу большей простоты представления результата вычитания, в ЭВМ используется дополнительный код.
Для чисел с плавающей запятой при выполнении операций сложения и вычитания сначала выравниваются порядки, затем выполняется заданная операция над мантиссами и, наконец, производится нормализация результата.
Выравнивание порядков заключается в сдвиге вправо мантиссы числа с меньшим порядком на количество разрядов, равное абсолютной величине разности порядков двух чисел. С каждым сдвигом значение порядка увеличивается на единицу, а освободившиеся старшие разряды заполняются нулями.
Нормализацией называется выбор такого значения порядка, при котором старший разряд мантиссы имеет значение 1. При нормализации возможны две ситуации:
- результат меньше 1/2, то есть старшие разряды мантиссы нулевые. Если при этом результат представлен в прямом коде, мантисса сдвигается влево до тех пор, пока первая значащая 1 не окажется в старшем разряде. Если же результат представлен в обратном или дополнительном коде (отрицательный), производится сдвиг влево до появления в старшем разряде первого значащего нуля. При каждом сдвиге значение порядка уменьшается на 1;
- результат больше 1, то есть разрядная сетка переполнена. В этом случае мантисса сдвигается вправо на один разряд с одновременным увеличением порядка на 1.
Остается отметить, что правила выполнения основных арифметических операций, приведенные в данном подразделе, справедливы для чисел любой позиционной системы счисления.
ПРАВИЛА ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ
Сложение | Вычитание | Умножение |
0+0 =0 | 0 – 0 =0 | 0 х 0 = 0 |
0 + 1 = 1 | 1 – 0 =1 | 0 х 1 = 0 |
1 + 0 =1 | 1 – 1 = 0 | 1 х 0 = 0 |
1 + 1 = 10 | 10 – 1 = 1 | 1 х 1 = 1 |
В вычислительной технике применяют прямой, обратный и дополнительный коды.
Прямой двоичный код Рпр(х) – это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак « - » единицей. При этом старший разряд называется знаковым.
Например, числа +9D и – 9D, представленные в прямом пятиразрядном коде
D
0’ | B |
D
1’ | B |
Здесь апострофом отделены знаковые разряды.
Дата добавления: 2015-08-08; просмотров: 2196;