Формы представления в ЭВМ числовых данных

В математике широко используются две формы записи чисел: естественная и нормальная.

При естественной форме число записывается в естественном натуральном виде, например: 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

в)

0

 

А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.