Для такого округления необходимо иметь датчик случайных величин (0 или 1), единица с выхода которого прибавляется к младшему разряду сохраняемой части числа. Погрешность округления при равновероятном распределении значений отбрасываемой части является случайной величиной с нулевым математическим ожиданием.
Таким образом, самым простым способом округления является усечение, при котором не требуется дополнительных затрат времени и оборудования. Однако на практике важнее всего точность вычислений. Только для трех способов округления по дополнению максимальная ошибка близка к половине единицы младшего разряда машинного числа, т. е. является наименьшей. Наиболее быстродействующим из них является упрощенный способ, а наиболее точным — усовершенствованный. Поэтому предпочтение тому или другому способу округления следует отдавать только после анализа требований, предъявляемых к быстродействию и погрешности вычислений конкретной машины. Будем в дальнейшем пользоваться способом округления по дополнению.
Так как положительные числа в прямом, обратном и дополнительном кодах представляются одинаково, то и правила округления положительных чисел во всех трех кодах будут теми же. Однако округление отрицательных чисел, записанных в инверсных кодах, имеет ряд особенностей.
Обратный код.
При округлении по дополнению всегда округляется абсолютная величина, вследствие этого из дополнительного разряда (ДР) отрицательной дроби необходимо вычесть единицу, т. е. прибавить к округляемой дроби обратный код -1окр = 1,11...10, где цифра 0 записана в ДР. Цепочка циклического переноса должна при этом охватывать и этот ДР.
Добавлять код 1,11...10 и перестраивать цепочку циклического переноса для охвата ДР, т. е. (n+ 1)-го разряда сумматора, весьма неудобно. Поэтому отрицательные дроби обычно округляются после их перевода из обратного в прямой код.
Дополнительный код.
При округлении отрицательной дроби, заданной в дополнительном коде, различают два случая. Если справа от ДР находится хотя бы одна единица, то в ДР прибавляется единица округления, после чего все разряды, начиная с дополнительного, отбрасываются. Если в ДР находится единица и эта единица является младшей в коде числа, то все разряды, начиная с дополнительного, просто отбрасываются.
Литература
1. Самофалов К.Г., Романкевич А.М., и др. Прикладная теория цифровых автоматов. - Киев. “Вища школа” 1987.
2. Соловьев Г.Н. Арифметические устройства ЭВМ. - М. “Энергия”. 1978.
3. Савельев А.Я. Прикладная теория цифровых автоматов - М. “Высшая школа”. 1987.
4. Каган Б.М. Электронные вычислительные машины и системы. - М. Энергоатомиздат. 1985.
5. Лысиков Б.Г. Арифметические и логические основы цифровых автоматов. - Минск. “Вышэйшая школа”. 1980.