Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОДЕРЖАНИЕ 3 (2).doc
Скачиваний:
46
Добавлен:
31.08.2019
Размер:
6 Мб
Скачать
☆
        1. Округление обратного и дополнительного кодов положительного числа

Во всех режимах округления обратный и дополнительный код положительных чисел округляется по правилам округления прямого кода положительных чисел, поскольку их представление во всех трех кодах совпадает.

        1. Округление обратного кода отрицательного числа

Признак ситуации потери точности – цифра не обратная нулю хотя бы в одном отбрасываемом разряде.

Если при заданном методе округления из двух ближайших чисел должно быть выбрано ближайшее к нулю, то сохраняемые разряды исходного кода содержат код результата округления.

Если при заданном методе округления из двух ближайших чисел должно быть выбрано отстоящее дальше от нуля, то код результата округления равен укороченному исходному коду, уменьшенному на 1 младшего разряда формата результата. Его можно получить вычитанием из сокращенного кода +1 младшего разряда или сложением сокращенного кода с обратным кодом отрицательной единицы в младшем разряде. Оби операции следует выполнять по правилам их выполнения в обратном коде (раздел 4.3).

Пример 3-14. Выполнено округление обратного кода отрицательных чисел к нулю и от нуля с сокращением двух младших разрядов. В вариантах A-D обратные коды десятичных чисел, а в вариантах E-H – двоичных. В круглых скобках даны значения закодированных чисел в соответствующей системе счисления. Сокращаемые разряды исходного кода числа Nт зачеркнуты. В строке N1 приведены результаты округления со смещением числа к нулю, а в строке N2 – от нуля. Обратные коды в строке N1 получены отбрасыванием сокращаемых разрядов исходного кода, а в строке N2 – вычитанием 1 из сокращенного обратного кода строки N1.

В вариантах A и E числа принадлежат середине диапазона отрицательных чисел представляемых в исходном формате.

В вариантах B и F исходные числа принадлежат отрицательной области полной потери значимости (рис.3-5). Результат округления к нулю – обратный код машинного нуля. Сложилась исключительная ситуация машинный ноль. Ее признак – наличие цифр обратных нулю во всех разрядах исходного укороченного обратного кода.

Округление числа в направлении от нуля смещает число на числовой оси влево, что приводит к переходу его через нижнюю границу диапазона представляемых чисел. Результат округления от нуля – обратный код максимального отрицательного числа не равного нулю. При округлении от нуля ситуация машинный ноль сложиться не может, так как любое число не равное нулю и принадлежащее области полной потери значимости при округлении от нуля смещается в область чисел представимых в формате с сокращенными младшими разрядами.

В вариантах A и E числа принадлежат середине диапазона отрицательных чисел представляемых в исходном формате.

В

A B С D

NT: 1|245|0079об (-754,992) 1|999|9979об (-0,002) 1|990|0079об (-9,992) 1|000|0079об (-999,992)

N1: 1|245|00об (-754,99) 1|999|99 об (-0,00) 1|990|00 об (-9,99) 1|000|00 об (-999,99)

- 1 - 1 - 1 - 1

N2: 1|244|99об (-755,00) 1|999|98 об (-0,01) 1|989|99 об (-10,00) 1|8999|99 об (-1000)

E F G H

NT:1|010|0001об (-101,111) 1|111|1101об (-0,001) 1|110|0001об (-1,111) 1|000|0001об (-111,111)

N1: 1|010|00 об (-101,11) 1|111|11 об (-0) 1|110|00 об (-1,11) 1|000|00 об (-111,11)

- 1 - 1 - 1 - 1

N2: 1|001|11 об (-110,00) 1|111|10 об (-0,01) 1|101|11 об (-10,00) 1|0111|11 об (-1000,00)

вариантах B и F исходные числа принадлежат отрицательной области полной потери значимости (рис.3-5). Результат округления к нулю – обратный код машинного нуля. Сложилась исключительная ситуация машинный ноль. Ее признак – наличие цифр обратных нулю во всех разрядах исходного укороченного обратного кода.

Округление числа в направлении от нуля смещает число на числовой оси влево, что приводит к переходу его через нижнюю границу диапазона представляемых чисел. Результат округления от нуля – обратный код максимального отрицательного числа не равного нулю. При округлении от нуля ситуация машинный ноль сложиться не может, так как любое число не равное нулю и принадлежащее области полной потери значимости при округлении от нуля смещается в область чисел представимых в формате с сокращенными младшими разрядами.

Варианты C,D и G,H иллюстрируют, что код числа смещенного от нуля (N2) может иметь в поле целого на один значащий разряд больше, чем в поле целого исходного кода. В обратном коде не значащими являются старшие разряды содержащие цифру обратную нулю. Увеличение количества значащих разрядов может приводить к переходу числа через границы областей чисел представимых в формате результата записи и быть причиной исключительной ситуации переполнение или, напротив, исключать ситуацию потери значимости. Признак увеличения количества значащих разрядов в коде, смещенном от нуля, – наличие цепочки нулей в младших разрядах укороченного обратного исходного кода.

Если при заданном методе округления из двух ближайших чисел должно быть выбрано ближайшее к нулю, то признаки исключительных ситуаций при записи обратного кода отрицательного числа в формат результата следующие.

Ситуация переполнения может сложиться, если поле целого в формате результата меньше чем в исходном формате. Ее признак – наличие цифры не обратной нулю в сокращаемых разрядах целого.

Ситуация потери значимости складывается, если

  • поле целого в формате результата больше чем в исходном формате;

  • поля целого в форматах совпадают, и старший разряд в исходном формате содержит цифру обратную нулю;

  • поле целого в формате результата меньше чем в исходном, нет переполнения формата и старший разряд, копируемый в формат результата, содержит цифру обратную нулю.

Ситуация машинный ноль может сложиться при любой длине формата результата. Ее признак – наличие цифр обратных нулю во всех разрядах исходного кода кроме разрядов, отбрасываемых при округлении. Машинный ноль имеет знак исходного кода.

Если при заданном методе округления из двух ближайших чисел должно быть выбрано отстоящего дальше от нуля, то признаки исключительных ситуаций при записи обратного кода отрицательного числа в формат результата следующие.

Ситуация переполнения может сложиться, если поле целого в формате результата не больше чем в исходном формате. Ее признак – отсутствие цифры обратной нулю в сокращаемых разрядах целого или наличие нулей во всех разрядах исходного кода копируемых в формат результата.

Ситуация потери значимости складывается, если

  • поле целого формата результата превышает поле целого исходного формата более чем на 1 разряд;

  • поле целого формата результата превышает поле целого исходного формата на 1 разряд и в сохраняемых разрядах исходного кода есть цифра не равная нулю;

  • поле целого в формате результата не больше чем в исходном формате, нет переполнения формата, разряд исходного формата соответствующий старшему разряду формата результата содержит цифру обратную нулю и в остальных сохраняемых разрядах исходного кода есть цифра не равная нулю.

Ситуация машинный ноль сложиться не может.