Формы представления в ЭВМ числовых данных
В математике широко используются две формы записи чисел: естественная и нормальная.
При естественной форме число записывается в естественном натуральном виде, например: 28759 – целое число, 0,01372 – правильная дробь, 25,0265 – неправильная дробь.
При нормальной форме запись одного и того же числа может быть различной в зависимости от ограничений, накладываемых на ее форму. Например, число 28759 может быть записано так:
28759=2,8759 . 104=287590 . 10-1=0,28759 . 105 и т.д.
При естественном представлении чисел в ЭВМ устанавливается длина разрядной сетки, а также число разрядов, отводимых под целую и дробную части числа. При этом распределение разрядов между целой и дробной частями не изменяется и остается постоянным независимо от величины числа, т.е. положение запятой в разрядной сетке ЭВМ строго фиксировано. Поэтому существует также и другое название этой формы представления чисел – с фиксированной запятой.
Например, если под целые части отведено 3 разряда (n=3), а под дробную часть – 4 разряда (m=4), то числа запишутся в виде:
000,0000
000,0001
000,0010
.………..
111,1110
111,1111.
Здесь число 000,0001 наименьшее (отличное от нуля) двоичное число, а 111,1111 – наибольшее число, представленное при данной разрядной сетке. Всякое число, большее нуля, но меньшее 0,0001, будет представлено нулем (это так называемый машинный нуль). Числа, большие 111,1111 в данной разрядной сетке не могут быть представлены, т.к. при записи таких чисел часть старших разрядов теряется.
Возникает вопрос, в каком месте разрядной сетки ЭВМ целесообразнее фиксировать запятую? Как правило запятую фиксируют или перед старшим цифровым разрядом чисел (машина оперирует с числами, меньшими единицы, т.е. n=0), или в конце разрядной сетки (машина оперирует с целыми числами, т.е. m=0).
При машинном представлении чисел один разряд отводится под знак числа, а остальные образуют поле числа (рис.3.1). Знаковый разряд может располагаться как в начале, так и в конце числа. Обычно знак положительного числа изображается символом 0, а знак отрицательного числа - символом 1.
а) номер разряда
знак поле числа
б)
, - 0,101011100101001
в)
+ 001000111110111 ,
Рис.3.1
На рис.3.1 приведены примеры записи чисел в форме с фиксированной запятой отрицательного числа (запятая фиксирована перед старшим разрядом, n=0) и положительного целого числа (запятая фиксирована в конце разрядной сетки, m=0).
Если поле числа включает в себя m разрядов и запятая фиксирована перед старшим разрядом, то диапазон представления чисел в этом случае ограничивается значениями –(1-2-m) ¸ + (1-2-m).
Представление чисел в ЭВМ в нормальной форме называют так же представлением с плавающей запятой, т.к. положение запятой в записи числа, как показывают приведенные выше примеры, в этом случае может изменяться.
В нормальной форме записи число А представляется в виде
A=M . qП ,
где М – мантисса числа, определяющая значащие цифры числа, q – основание системы счисления, П – порядок числа, определяющий положение запятой в числе.
Формат машинного изображения числа с плавающей запятой содержит поля для мантиссы (m разрядов) и порядка (р разрядов) и по одному разряду для знака мантиссы и знака порядка (рис.3.2., m=9, p=5). Очевидно, что знак мантиссы является и знаком числа. Кодирование знаков остается таким же, как и при представлении чисел в форме с фиксированной запятой.
Обычно в ЭВМ запятая в мантиссе фиксируется перед старшим знаковым разрядом, а порядок представляет собой целое число. Чтобы избежать неоднозначности представления чисел используют так называемую нормализованную форму, для которой справедливо следующее условие:
q-1 £ ½m½ < 1. (3.6)
Так десятичные числа 42,56 . 102 и 0,00374 . 10-4 в нормализованном виде должны быть записаны следующим образом: 0,4256 . 104 и 0,374 . 10-6. Для двоичной системы счисления нормализованные числа в старшем разряде мантиссы имеют 1.
Рассмотрим примеры записи чисел в форме с плавающей запятой. Пусть в разрядную сетку ЭВМ (рис.3.2) необходимо записать двоичные числа А1=-10110,1111 и А2=+0,000110000111. Прежде всего эти числа необходимо нормализовать. Порядок чисел выбираем таким образом, чтобы для них выполнялось условие (3.6), т.е. А1=-0,101101111 . 25 и А2=+0.110000111 . 2-3. Порядок должен быть записан также в двоичной системе.
а)
б)
А1 = - 0,101101111 . 2+5
в)
![]() |
А2 = + 0,110000111 . 2-3
Рис.3.2
Для изображения порядка выделено пять цифровых разрядов и один знаковый разряд, поэтому машинные изображения порядков запишутся как ПА1=000101 и ПА2=100011. При этом машинные изображения мантисс будут равны соответственно: МА1=1101101111 и МА2=0110000111.
Изображения чисел А1 и А2 в форме с плавающей запятой показаны на рис.3.2б и 3.2в.
Представление числовой информации в ЭВМ, как правило, влечет за собой появление погрешностей (ошибок), значения которых зависят как от формы представления чисел, так и от длины разрядной сетки ЭВМ.
Абсолютная погрешность представления – это разность между числом А и его значением, полученным из машинного изображения АМ:
D[A] = A - AM.
Относительная погрешность представления – это отношение абсолютной погрешности представления числа к его значению в машинном представлении:
d[A] = D[A] / AM.
Целые числа представляются в машине без погрешностей. Максимальная абсолютная погрешность представления правильной дроби в форме в фиксированной запятой равна половине значения младшего разряда разрядной сетки, т.е.
D[A] max ф.з. = 2-m / 2 = 2-m-1,
где m - длина разрядной сетки для представления дробной части числа. Тогда минимальная и максимальная относительные погрешности представления правильной дроби в форме с фиксированной запятой определятся соответственно следующим образом:
![]() |
Таким образом имеем неодинаковую относительную погрешность чисел в форме с фиксированной запятой, причем погрешности представления малых чисел могут быть значительными.
При представлении чисел в форме с плавающей запятой максимальная абсолютная погрешность определяется половиной значения младшего разряда мантиссы и кроме того она зависит от величины порядка:
Отсюда относительная ошибка определится как
которая достигает максимума при минимальной нормализованной мантиссе
и минимума при максимальной мантиссе
Из этого следует, что относительная погрешность представления чисел в форме с плавающей запятой практически не зависит от величины числа и примерно постоянна во всем диапазоне представления чисел.
Раздел 4.