Представление вещественных чисел
Для представления вещественных чисел используется формат с пла- вающей точкой. Вещественные числа всегда рассматриваются как числа со знаком. Разрядная сетка имеет строго фиксированное число разрядов.
В основе формата лежит представление чисел в экспоненциальной (научной) форме. Число в этой форме записывается в виде мантиссы и порядка:
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 (+)
![]() |
![]() |
||
![]() |
Пример: A[10] = -32.5 Þ A[16] = -20.8·160
Нормализуем А[16] = - 0.208·162
Получаем Z[16] = 40 +2 = 42
M[16] =0.208
Знак = 1 (-)
![]() |
![]() |
||
![]() |
Двоичная нормализация. Нормализация выполняется по правилу, не- сколько отличающемуся от общего: за счет сдвига мантиссы и изменения
порядка двоичного числа добиваются выполнения условия 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]
При одинаковых количественных характеристиках (длине мантиссы и длине характеристики) шестнадцатеричная нормализация позволяет получить больший диапазон чисел, но имеет меньшую точность.
© ООО «Знанио»
С вами с 2009 года.