Особенности машинной арифметики
Знание основных особенностей машинной арифметики необходимо для грамотного использования ЭВМ при численном решении задач.
Будем считать, что все вычислительные машины работают в двоичной системе счисления. Для хранения числа в памяти ЭВМ отводится поле стандартной длины (машинное слово), в котором число записывается в виде последовательности двоичных цифр (0 или 1). Целое число n представляется в виде
(2)
где L- некоторое стандартное для ЭВМ целое число, ai – двоичные числа.
Всего для хранения числа n отводят L +2 разрядов (один из них для хранения знака).
Из представления (2) видно, что максимальное по модулю целое число, представимое в ЭВМ, есть . Операции сложения, вычитания и умножения над целыми числами реализованы так, что если результат не превышает по модулю число nmax , то он получается точным. Однако, если модуль результата превышает nmax , то на ряде вычислительных машин эта ситуация не доводится до сведения пользователя, происходит присвоение результату некоторого значения, меньшего nmax по модулю, и вычисления продолжаются далее.
Для вещественных чисел принята форма представления с плавающей точкой, когда каждое число представляется в виде
(3)
где – двоичные цифры. Число x нормализуется так, чтобы и поэтому в ЭВМ хранятся только значащие цифры. Число называется мантиссой числа x . Количество t цифр, которое отводится для записи мантиссы, называется разрядностью мантиссы, p - целое число, называемое двоичным порядком. Порядок также записывают, как двоичное целое число , для хранения которого в машинном слове отводится 2 + l двоичных разрядов.
Так как нуль – ненормированное число (его нельзя представить в виде (3) при 0 1 ¹ g ), то для его хранения предусматривают особый способ записи.
Отметим следующие моменты.
1. В ЭВМ представимы не все числа, а лишь конечный набор рациональных чисел специального вида. Эти числа образуют представимое множество вычислительной машины. Для всех остальных чисел x возможно лишь их приближенное представление с ошибкой, которую принято называть ошибкой представления (или ошибкой округления). Обычно приближенное представление числа x в ЭВМ обозначают как . Если округление производят по дополнению, то граница относительной погрешности представления равна единице первого отброшенного разряда мантиссы, т.е . Если же округление производят усечением, то Величина играет в вычислениях на ЭВМ фундаментальную роль, ее называют относительной точностью ЭВМ, а также машинной точностью (или машинным эпсилон). Значение этой величины определяется разрядностью мантиссы и способом округления.
Можно считать, что точное число x и отвечающее ему округленное число связаны равенством
Среди представимых на ЭВМ чисел нет не только ни одного иррационального (в том числе и таких важных постоянных, но и даже такого широко используемого в вычислениях числа, как 0.1. Дело в том, что двоичная запись числа 0.1 является бесконечной периодической дробью: . Поэтому это число представляется на ЭВМ приближенно, с погрешностью, вызванной необходимостью округления.
2. Диапазон изменения чисел в ЭВМ ограничен. Для всех представимых на ЭВМ чисел x (за исключением нуля) имеем Все числа по модулю большие рассматриваются, как машинная бесконечность.
Попытка получить такое число приводит к аварийному останову (авосту) ЭВМ по переполнению. Все числа по модулю меньшие для ЭВМ не различимы и представляются, как нуль (машинный нуль). Получение числа x , такого, что , называют исчезновением порядка. Обычно, при исчезновении порядка, автоматически полагается и вычисления продолжаются.
3. Правила выполнения арифметических операций в двоичной системе счисления просты и легко реализуются на ЭВМ. Однако в процессе проведения вычислений погрешности округлений (в силу ограниченной разрядности мантиссы арифметические операции над представимыми в ЭВМ вещественными числами не могут быть реализованы точно) могут накапливаться, так как выполнение каждой из четырех арифметических операций вносит некоторую погрешность. Считается, что выполнение каждой арифметической операции вносит относительную погрешность не большую, чем Это предположение можно записать в виде
(4)
где звездочка означает любую из операций Если результат выполнения арифметической операции является машинным нулем, то в формуле (4) надо положить
Отметим еще раз, что в отличие от обычных математических операций, машинные арифметические операции из-за ограниченной разрядности мантиссы обладают иными свойствами. Например, не выполняется известное правило арифметики «от перемены мест слагаемых сумма не меняется».