В памяти ЦВМ числовая информация может быть представлена в различных формах.
В случае с фиксированной запятой для всех чисел, над которыми выполняются операции, положение запятой строго зафиксировано между целой и дробной частями числа.
Обычно в ЦВМ используются два способа расположения запятой:
перед старшим разрядом, то есть целая часть числа равна нулю, и в операциях участвуют правильные дроби;
после младшего разряда, то есть дробная часть числа равна нулю, и в операциях участвуют только целые числа.
Разрядная сетка с указанием номера разряда и его веса для дробного числа имеет вид:
2-1 | 2-2 | 2-3 | 2-(n-1) | 2 -n | ||
... | n-1 | n | ||||
Знак | цифровая часть числа |
Разрядная сетка для целого числа имеет вид:
2n-1 | 2n-2 | 21 | 20 | |||
n | n-1 | … | … | … | ||
знак | цифровая часть числа |
Если целые числа представляются без знака, то диапазон их представления в заданной разрядной сетке может быть увеличен за счет использования разряда, отводимого под знак числа.
Число с фиксированной запятой представляется следующим образом:
[Х]ф.з.=Х*Км, (2)
где: [Х]ф.з.- машинное представление числа с фиксированной запятой;
Х - исходное число,
Км - масштабный коэффициент, который выбирается из условий конкретной разрядной сетки и не должен допускать выхода исходных чисел и результатов вычислений за пределы допустимого диапазона.
Масштабный коэффициент должен быть единым для всех обрабатываемых в машине чисел и получаемых результатов, он хранится отдельно от представляемых чисел и учитывается при выдаче конечного результата.
Число в форме с фиксированной запятой должно удовлетворять следующему неравенству:
[X]ф.з.min £ [X]ф.з. £ [X]ф.з.max (3)
Если нарушена левая часть неравенства, то имеем машинный ноль; если нарушена правая часть неравенства, то произошло переполнение разрядной сетки.
Представление чисел в форме с плавающей запятой позволяет избежать масштабирования исходных чисел, а также увеличить диапазон и точность представляемых чисел.
Число в нормальной форме имеет вид:
Х = m*q p, (4)
Где: q- основание СС,
p -целое число - порядок числа Х,
m -мантисса числа.
Полулогарифмической эта форма представления называется потому, что в логарифмической форме представлено не всё число, а только его характеристика q.
Поскольку, изменяя одновременно определённым образом мантиссу и порядок числа Х, можно по выражению (4) получить любое количество представлений числа Х, то на мантиссу m накладывается следующее ограничение, чтобы избежать неоднозначности в представлении чисел
q -1 £ I mI £ 1. (5)
Если для числа Х в форме с плавающей запятой выполнены условия (5), то число Х называется нормализованным, мантисса представляется правильной дробью, а ее старший разряд с основанием q отличен от 0.
Для двоичной СС неравенство (5) имеет вид:
0.100...0 £ lml £ 0.11...1. (5')
Разрядная сетка для числа с плавающей запятой состоит из двух частей: для порядка и для мантиссы.
порядок | мантисса | ||||||
m-1 | m-2 | n | |||||
Знак порядка | 2 m-1 | 2 m-2 | 2 -0 | Знак мантиссы | 2-1 | 2-2 | 2 -n |
Мантисса, удовлетворяющая условию (5') называется нормализованной, а операция преобразования ее к виду (5') называется нормализацией.
Чтобы нормализовать мантиссу, ее нужно сдвигать вправо для целого числа и влево для дроби на столько разрядов, чтобы целая часть мантиссы была равна нулю, а старший разряд мантиссы был равен 1, после чего к порядку целого числа прибавить (а из порядка дроби вычесть) столько единиц, на сколько разрядов был произведен сдвиг.
Для упрощения операций над порядками чисел с плавающей запятой, порядки представляют целыми положительными числами без знака, используются так называемые смещенные порядки. Чтобы получить смещенный порядок, нужно к исходному порядку p прибавить целое число - смещение М = 2 k, где k-число двоичных разрядов, используемых для модуля порядка.
Смещенный порядок
Рсм = Р+М (6)
всегда является положительным. Для его представления необходимо такое же число разрядов, как и для модуля и знака порядка р.