Представление вещественных чисел
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Для представления вещественных чисел используется формат с плавающей точкой. Вещественные числа всегда рассматриваются как числа со знаком. Разрядная сетка имеет строго фиксированное число разрядов.

В основе формата лежит представление чисел в экспоненциальной (научной) форме. Число в этой форме записывается в виде мантиссы и порядка:

A = ± M · S ± P ,

где M – мантисса,

S – основание системы счисления,

p – порядок.

Пример. A[10] = 0.0225·103 = 0.225 · 102 = 2.25·101 = 22.5·100 =225·10-1 = 22.5

В формате с плавающей точкой кодируется: мантисса, порядок, знак числа и знак порядка. На каждую из кодируемых компонент отводится строго фиксированное число разрядов. Основание системы счисления заранее оговаривается и не кодируется.

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

Способ кодировки мантиссы и порядка в различных ЭВМ может быть разным. Отметим общие подходы при кодировании вещественных чисел.

Кодируемое число предварительно нормализуется. За счет сдвига мантиссы и изменения порядка добиваются выполнения условия

S-1£|M|<1.                       ( 1)

В рассмотренном примере этому условию соответствует запись числа в виде A[10] = 0.225·102.

В нормализованном числе целая часть мантиссы будет нулем, а старшая цифра дробной части будет отличной от нуля. Этот прием позволяет отказаться от хранения целой части и закодировать в мантиссе максимально возможное количество значащих цифр, то есть добиться максимальной точности. Мантисса записывается в прямом коде, причем знак мантиссы (он же знак числа) заносится в старший разряд. Знак положительного числа кодируется как 0, а знак отрицательного – как 1.

Порядок кодируется в виде так называемой характеристики. Характеристика Z представляет собой смещенный порядок: Z = P + D. Величина смещения D подбирается так, чтобы характеристика для минимального порядка была равна нулю. Этот прием позволяет использовать в качестве характеристики число без знака и не кодировать специально знак порядка. Обобщенный вид формата с плавающей точкой показан на рисунке:

                          n-1                      0 m-1                                                   0

Знак числа Характеристика Мантисса

 

Типичные для персональных ЭВМ варианты формата с плавающей точкой приведены в таблице 3.

 

 

                                                                                                                                    Таблица 3

Длина формата (бит) Длина Мантиссы, (бит) Длина характеристики, (бит) Диапазон чисел по модулю в десятичном эквиваленте Точность представления, (десятичные цифры)
32 23 8 » |10-38| ¸ |1038| 7
64 52 11 » |10-308| ¸ |10308| 15

 

 

Отличия в кодировании вещественных чисел для разных ЭВМ носят количественный и качественный характер. Отличия количественного характера проявляются в различной длине мантиссы и порядка, а качественные – в системе счисления, в которой выполняется нормализация и определение порядка. Чаще всего применяется шестнадцатеричная или двоичная нормализация.

Шестнадцатеричная нормализация. Число нормализуется по рассмотренному выше общему правилу (1), чтобы 16-1£|M|<1. В этом случае старшая шестнадцатеричная цифра мантиссы отлична от нуля. Шестнадцатеричная нормализация обычно используется в универсальных ЭВМ.

Рассмотрим типичный вариант формата.

Длина формата – 32 разряда.

Длина мантиссы m=24.

Длина характеристики n=7.

Знак – 1 разряд.

Правила формирования характеристики: Z[16] = 40[16] + P[16].

Пример: A[10] = 5.5 Þ A[16] =5.8·160

Нормализуем А[16] =0.58·161.

Получаем Z[16] = 40+1 = 41

M[16] = 0.58

Знак = 0 (+)

 

4 1 58 00 00 [16]


0 1000001

Пример: A[10] = -32.5 Þ A[16] = -20.8 · 160

Нормализуем А[16] = - 0.208 · 162

Получаем   Z[16] = 40 +2 = 42

M[16] =0.208

Знак = 1 (-)

С 2 20 80 00 [16]


1 1000010

Двоичная нормализация. Нормализация выполняется по правилу, несколько отличающемуся от общего: за счет сдвига мантиссы и изменения порядка двоичного числа добиваются выполнения условия 1£|M|<2. В этом случае целая часть мантиссы будет содержать одну двоичную цифру, причем она будет равна единице. Обязательную единицу можно отбросить и в коде не хранить. Это позволяет использовать дополнительный разряд для хранения дробной части и тем самым увеличить точность представления числа. Двоичная нормализация обычно используется в мини и микро- ЭВМ. Рассмотрим типичный вариант формата.

Длина формата – 32 разряда.

Число разрядов мантиссы m=23.

Число разрядов характеристики n=8.

Знак – 1 разряд.

Правила формирования характеристики: Z[2] = 27 – 1 + P[2] или Z[10] = 127[10] + P[10].

Пример: A[10] = 0.75 Þ A[2] =0.11·20

Нормализуем А[2] =1.1·2-1 и отбрасываем старшую единицу.

Получаем Z[10] = 127-1 = 126

M[2] = .10000000000000000000000

Знак = 0 (+)

 

0 011 1111 0 100 0000 0000 0000 0000 0000

  3      F     4    0   0   0  0   0[16]

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



Дата: 2019-02-02, просмотров: 223.