9.1.3. ЭФФЕКТ УСЕЧЕНИЯ ИЛИ ОКРУГЛЕНИЯ
Здесь рассматриваются как числа с фиксированной запятой, так и мантиссы чисел с плавающей запятой, подлежащих представлению в виде
-разрядных двоичных дробей, у которых двоичная запятая находится справа от старшего разряда. Это условие не приводит к потере общности, а о его целесообразности упоминалось ранее. Числовое значение 1 (для положительных чисел) в наименьшем значащем разряде составляет
Эта величина будет определяться как шаг квантования, поскольку числа квантуются шагами размером
Как указывалось ранее, эффект усечения или округления зависит от использования в арифметическом устройстве фиксированной или плавающей запятой и способа представления отрицательных чисел. Сначала рассмотрим эффект усечения и округления в случае фиксированной запятой. При использовании прямого, обратного и дополнительного кодов положительные числа имеют одинаковое представление и, следовательно, таким же является эффект усечения и округления. Обозначим через
число разрядов, стоящих справа от двоичной запятой до усечения, и через
число разрядов — после усечения (при условии, что
Эффект усечения состоит в отбрасывании наименьших значащих
разрядов, и, следовательно, величина числа после усечения оказывается меньше или равна его величине до усечения.
Если обозначить число до усечения и после него через
соответственно, то ошибка усечения будет равна
Эта ошибка будет отрицательной или нулевой для положительных чисел. Наибольшая ошибка имеет место, когда все отбрасываемые разряды содержат единицу; при этом число, содержащееся в регистре, уменьшается на
Поэтому при усечении положительных чисел
Для отрицательных чисел эффект усечения зависит от способа их представления в прямом, дополнительном или обратном кодах. Поэтому отдельно рассматривается каждый из этих трех случаев.
При записи числа в прямом коде эффект усечения, как указывалось, сводится к уменьшению величины числа. Поэтому отрицательное число становится меньше по величине так, что
(величина после усечения минус величина до усечения) будет
положительной. Это значит, что для усечения отрицательных чисел, представленных в прямом коде,
Величину отрицательного чиса
в дополнительном коде, записанного в виде строки разрядов
можно представить как
где
Усечелче до
разрядов дает строку
где величина числа теперь равна
где
Изменение величины числа составляет
нетрудно видеть, что
Следовательно, эффект усечения для отрицательных чисел в дополнительном коде сводится к увеличению их величины при этом ошибка усечения является отрицательной. Таким образом, для отрицательных чисел в дополнительном коде
Для отрицательного числа в обратном коде, представляемого строкой разрядов
его величину можно записать в виде
Операция усечения до
разрядов даст в результате величину
где
были определены ранее. Изменение величины числа составляет
и теперь
Следовательно, эффект усечения для отрицательных чисел в обратном коде приводит к уменьшению величины отрицательного числа; ошибка усечения является положительной и удовлетворяет неравенству
Отметим, что для чисел в дополнительном коде диапазон ошибок оказывается одним и тем же для положительных и отрицательных чисел, тогда как для чисел в обратном и прямом кодах знак ошибки зависит от знака числа, подлежащего усечению.
В противоположность усечению числа могут быть округлены для соответствия конечному числу разрядов регистра. Будем считать (как и прежде), что числа после округления имеют справа от двоичной запятой
разрядов. После округления величины имеют
квантованные значения (с шагом
т. е. наименьшая ненулевая разность между двумя соседними числами составляет
Округление соответствует выбору ближайшего уровня квантования. Поэтому максимальная ошибка имеет величину
т. е. ошибка округления
лежит в диапазоне
Так как при округлении учитывается только величина числа,
такая ошибка не будет зависеть от способа представления отрицательных чисел. В общем случае можно предполагать, что
, следовательно, в вышеприведенных неравенствах можно пренебречь членом
. С учетом этого замечания можно сделать некоторые выводы относительно ошибок усечения и округления:
усечение:
округление:
Эти ошибки усечения и округления в общем виде приведены на рис. 9.1.
Рис. 9.1. Нелинейные зависимости, представляющие операции округления и усечения
В арифметическом устройстве с плавающей запятой усечение; или округление влияет только на мантиссу. Таким образом, при представлении чисел с плавающей запятой относительная ошибка
более важна, чем абсолютная. Это означает, что ошибки представления чисел с плавающей запятой являются скорее мультипликативными, чем аддитивными. Другими словами, если при плавающей запятой
представляет значение числа до усечения или округления и
после таких операций, то
где
относительная ошибка.
Для случая округления ошибка мантиссы находится в диапазоне
и ошибка в величине числа с плавающей запятой удовлетворяет неравенствам
или поскольку
то
Учитывая, что
можно записать
Аналогично можно показать, что при усечении мантиссы в обратном и прямом кодах ошибка будет удовлетворять условию
а при дополнительном коде эти условия принимают вид