Реферат: Выполнение операций алгебраического сложения и сдвига в ЭВМ
Округление от нуля.
Реализация данного способа требует анализа хвоста на нуль, затем отбрасывается хвост и, если отсекаемая часть не равна нулю, к абсолютной величине оставшейся части добавляется единица в младший разряд. Это добавление может вызвать распространение переносов через все разряды числа, что требует в общем случае выполнения операции сложения для реализации данного способа округления. Помимо дополнительных временных затрат это может привести к переполнению разрядной сетки. Следовательно, способ сложнее в реализации, хотя основные его характеристики точно такие же, как и при усечении.
Округление по недостатку.
Реализация данного способа базируется на анализе знака округляемого числа. Если [А]'> 0, то округление заключается в отбрасывании хвоста. Если же [А]' < 0, то хвост также отбрасывается, а к величине оставшейся части добавляется единица в младший разряд, если хвост не равен нулю. Таким образом, реализация данного способа еще более усложнена по сравнению со способом округления от нуля за счет анализа знака числа [А]', хотя величина max осталась при этом прежней.
Если рассматривать округление чисел только одного знака, то при А' > 0 данный способ совпадает с усечением, а при А' < 0 - с округлением от нуля. Отсюда ясно, что он не может конкурировать с усечением результатов.
Округление по избытку.
Этот способ во всем подобен предыдущему, с тем отличием, что добавление единицы в младший разряд сохраняемой части числа производится, когда оно больше нуля и хвост не равен нулю. При А'<0 хвост просто отбрасывается. Характеристики данного способа точно такие же, как у предыдущего, за исключением знака величины , который меняется на противоположный.
Округление по дополнению.
Данный способ представляет собой объединение способов округления от нуля и к нулю. Его реализация связана с коррекцией сохраняемой части числа А', которая производится по результатам анализа значения старшей цифры отсекаемой части a- n -1 , т. е. цифры дополнительного ( n + 1)-го разряда (ДР). Когда (n + 1 разряд) = 0, происходит округление к нулю, в противном случае - от нуля.
В случае равновероятного появления чисел разных знаков и равномерного распределения вероятностей появления различных значений хвоста числа математическое ожидание погрешности округления равно нулю. Однако при округлении чисел одного знака значение отлично от нуля. Поэтому при округлении чисел одного знака данный способ дает систематические ошибки округления, хотя и меньшие, чем при усечении.
По своим характеристикам способ округления по дополнению лучше, чем усечение. Систематические ошибки при округлении чисел одного знака обусловлены в данном случае тем, что округление особенно неточно производится, когда значение отсекаемой части близко к половине единицы младшего сохраняемого разряда. Этот недостаток устраняется в следующем способе округления.
Усовершенствованное округление по дополнению.
В этом случае решение о коррекции сохраняемой части числа А' принимается на основе анализа значения всех разрядов его отсекаемой части, а не только старшего. Таким образом, усовершенствованный способ дает хорошее округление в случае чисел одного знака, однако это достигается за счет усложнения его реализации.
Упрощенное округление по дополнению.
При реализации способов округления по дополнению из-за возникновения переносов при суммировании сохраняемой части числа с единицей округления необходимо выполнить операцию сложения, что требует дополнительного времени, т. е. снижает реальное быстродействие ЭВМ и, кроме того, может повлечь за собой переполнение разрядной сетки. Этот способ округления состоит в том, что младший разряд сохраняемой части числа принудительно устанавливается в единицу, если старший разряд отбрасываемой части равен единице.
При этом если в неокругленном результате разряд а- n равен единице, то он не изменяется при округлении. Если в неокругленном результате операции значение разряда а- n есть нуль, то установка его в единицу вносит погрешность.
Таким образом, при равновероятном появлении нуля и единицы в младшем разряде сохраняемой части для знакопеременных чисел снова получим симметричное распределение погрешностей.
Вероятностное округление.
Для такого округления необходимо иметь датчик случайных величин (0 или 1), единица с выхода которого прибавляется к младшему разряду сохраняемой части числа. Погрешность округления при равновероятном распределении значений отбрасываемой части является случайной величиной с нулевым математическим ожиданием.
Таким образом, самым простым способом округления является усечение, при котором не требуется дополнительных затрат времени и оборудования. Однако на практике важнее всего точность вычислений. Только для трех способов округления по дополнению максимальная ошибка близка к половине единицы младшего разряда машинного числа, т. е. является наименьшей. Наиболее быстродействующим из них является упрощенный способ, а наиболее точным — усовершенствованный. Поэтому предпочтение тому или другому способу округления следует отдавать только после анализа требований, предъявляемых к быстродействию и погрешности вычислений конкретной машины. Будем в дальнейшем пользоваться способом округления по дополнению.
3.2 Особенности округления чисел, заданных инверсными кодами
Так как положительные числа в прямом, обратном и дополнительном кодах представляются одинаково, то и правила округления положительных чисел во всех трех кодах будут теми же. Однако округление отрицательных чисел, записанных в инверсных кодах, имеет ряд особенностей.
Обратный код.
При округлении по дополнению всегда округляется абсолютная величина, вследствие этого из дополнительного разряда (ДР) отрицательной дроби необходимо вычесть единицу, т. е. прибавить к округляемой дроби обратный код -1окр = 1,11...10, где цифра 0 записана в ДР. Цепочка циклического переноса должна при этом охватывать и этот ДР.
Добавлять код 1,11...10 и перестраивать цепочку циклического переноса для охвата ДР, т. е. (n+ 1)-го разряда сумматора, весьма неудобно. Поэтому отрицательные дроби обычно округляются после их перевода из обратного в прямой код.
Дополнительный код.
При округлении отрицательной дроби, заданной в дополнительном коде, различают два случая. Если справа от ДР находится хотя бы одна единица, то в ДР прибавляется единица округления, после чего все разряды, начиная с дополнительного, отбрасываются. Если в ДР находится единица и эта единица является младшей в коде числа, то все разряды, начиная с дополнительного, просто отбрасываются.
Литература
1. Самофалов К.Г., Романкевич А.М., и др. Прикладная теория цифровых автоматов. - Киев. “Вища школа” 1987.
2. Соловьев Г.Н. Арифметические устройства ЭВМ. - М. “Энергия”. 1978.