Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 6.6 Арифметика смещенных порядков.doc
Скачиваний:
4
Добавлен:
14.08.2019
Размер:
493.06 Кб
Скачать

6.6 Арифметика смещенных порядков

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

В этом подразделе рассматривается арифметика порядков, прежде всего для распространенного в практике случая, когда порядок в формате представлен смещенным порядком

. (6-16)

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

При выполнении операций над числами с плавающей точкой выполняют операции над смещенными порядками.

6.6.1. Вычисление порядка и смещенного порядка

Исходные данные могут вводиться в ЦВМ в естественной или нормальной форме в разных системах счисления и затем преобразовываться в двоичную систему счисления с записью в формат с плавающей точкой со смещенным порядком. До записи в формат порядок E представлен, как правило, в прямом или в дополнительном двоичном коде числом со знаком. Для записи в формат необходимо вычислить смещенный порядок . При выводе числа из ЦВМ, а иногда с иной целью, необходимо вычислять порядок E по значению смещенного порядка . При обоих вариантах преобразования следует поддерживать отношение (6-16), но с некоторыми оговорками.

В базовых форматах стандарта IEEE 754 (раздел 5.3) отношение (6-16) справедливо, если число нормализованное и порядок не выходит за пределы интервала допустимых значений. Если число ненормализованное с минимальным порядком, смещенный порядок

(6-17)

В табл.6.2 приведен прямой, обратный, дополнительный и смещенные коды порядка E при длине поля порядка 8 бит.

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

Например, из табл.6.2 следует, что дополнительный код E отличается от смещенного при лишь содержимым разряда знака. Из этого следует, что при их взаимном преобразовании достаточно инвертировать код в старшем разряде.

При преобразовании прямого или обратного кода в смещенный при достаточно выполнять их преобразования в дополнительный код (раздел 3.2.1) и инвертировать разряд знака результата. При обратном преобразовании инвертировать старший разряд и полученный дополнительный код преобразовать в прямой или дополнительный.

Таблица 6.2

Порядок

E

Прямой

код

Обратный

код

Смещенный

bias=127

Дополн.

код

Смещенный

bias=128

+127

+126

+125

+3

+2

+1

+0

–0

–1

–2

–3

–125

–126

–127

01111111

01111110

01111101

00000011

00000010

00000001

00000000

10000000

10000001

10000010

10000011

11111101

11111110

11111111

01111111

01111110

01111101

00000011

00000010

00000001

00000000

11111111

11111110

11111101

11111100

10000010

10000001

10000000

11111110

11111101

11111100

10000010

10000001

10000000

01111111

01111111

01111110

01111101

01111100

00000010

00000001

00000000

01111111

01111110

01111101

00000011

00000010

00000001

00000000

00000000

11111111

11111110

11111101

10000011

10000010

10000001

11111111

11111110

11111101

10000011

10000010

10000001

10000000

10000000

01111111

01111110

01111101

00000011

00000010

00000001

Для преобразования смещенного кода при в дополнительный код достаточно к смещенному коду прибавить константу , отбрасывая перенос из старшего разряда. При обратном преобразовании достаточно из дополнительного кода вычесть константу , отбрасывая заем из старшего разряда, или прибавить к дополнительному коду константу , отбрасывая перенос из старшего разряда.

Для преобразования смещенного кода при в прямой код достаточно, если в старшем разряде смещенного кода 0, инвертировать все его разряды, иначе прибавить константу , отбрасывая перенос из старшего разряда. При обратном преобразовании, если код знака 1, инвертировать все разряды, включая знак, иначе прибавить константу , отбрасывая перенос из старшего разряда.

Безусловно, существует множество иных вариантов преобразования.

При преобразовании порядка E в смещенный порядок в формате стандарта IEEE 754 необходимо учитывать, что прямой код минимально допустимого порядка , и если мантисса нормализована, он преобразуется в смещенный порядок . Если мантисса ненормализованная, то смещенный порядок, соответствующий , следует принять равным 00…0. При обратном преобразовании смещенному порядку ненормализованного числа соответствует минимальный порядок E= 1|11…10. Кроме того, необходимо учитывать особенности представления числа равного нулю.