Особенности округления чисел, заданных инверсными кодами
Так как положительные числа в прямом, обратном и дополнительном кодах представляются одинаково, то и правила округления положительных чисел во всех трех кодах будут теми же. Однако округление отрицательных чисел, записанных в инверсных кодах, имеет ряд особенностей.
Обратный код. При округлении по дополнению всегда округляется абсолютная величина, вследствие этого из дополнительного разряда (ДР) отрицательной дроби необходимо вычесть единицу, т. е. прибавить к округляемой дроби обратный код
, где цифра 0 записана в ДР. Цепочка циклического переноса должна при этом охватывать и этот ДР.
Пример. Задано:
Округление абсолютной величины:
Непосредственное округление обратного кода дает:
Добавлять код
и перестраивать цепочку циклического переноса для охвата
т. е.
разряда сумматора, весьма неудобно. Поэтому отрицательные дроби обычно округляются после их перевода из обратного в прямой код.
Дополнительный код. При округлении отрицательной дроби, заданной в дополнительном коде, различают два случая. Если справа от
находится хотя бы одна единица, то в
прибавляется единица округления, после чего все разряды, начиная с дополнительного, отбрасываются. Если в
находится единица и эта единица является младшей в коде числа, то все разряды, начиная с дополнительного, просто отбрасываются. Прибавлять единицу в
в последнем случае нельзя, так как это исказит результат.
Пример. Заданы
Округление абсолютных величин:
Непосредственное округление дополнительных кодов чисел А и В.
Таким образом, округление отрицательных дробей, заданных в дополнительном коде, производится проще, чем в случае обратного кода.