Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Исходные данные могут вводиться в ЦВМ в естественной или нормальной форме в разных системах счисления и затем преобразовываться в двоичную систему счисления с записью в формат с плавающей точкой со смещенным порядком. До записи в формат порядок 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. Кроме того, необходимо учитывать особенности представления числа равного нулю.
Дата публикования: 2014-12-11; Прочитано: 886 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!