Способы представления чисел в ЭВМ
Как мы уже знаем, применяются два основных способа представления чисел - с фиксированной и плавающей запятой. Большинство универсальных ЭВМ работает с числами, представленными с плавающей запятой, а большинство специализированных - с фиксированной запятой.
Однако целый ряд машин работает с числами в этих двух форматах.
В общем виде способ представления чисел сильно влияет на характер программирования. Так, программирование для ЭВМ, работающих в системе с фиксированной запятой, значительно усложняется, поскольку помимо алгоритмических трудностей этот процесс требует ещё отслеживания положения запятой.
Фиксированная запятая
Оговоримся, что разрядная сетка машины имеет постоянное число разрядов - n.
При представлении чисел с фиксированной запятой считают, что запятая всегда находится перед старшим разрядом, а все числа, которые участвуют в вычислениях, считаются по абсолютной величине меньше единицы:
|X| < 1
Введём две характеристики чисел: диапазон изменения и точность представления.
Диапазон изменения характеризуется теми пределами, в которых могут находиться числа, с которыми оперирует машина.
Отличное от нуля самое малое число:
Таким образом, диапазон чисел, с которыми работает ЭВМ, есть:
|X|min <= |X| <= |X|max
2-n <= |X| <= 1 - 2-n
Иными словами, числа, которые выходят за диапазон изменения, в ЭВМ не могут быть представлены точно. Если
|X| < |X|min = 2-n,
то такое число воспринимается как нуль.
Если:
|X| > |X|max = 1- 2-n,
то такое число воспринимается как бесконечно большое. Этим двум случаям соответствуют понятия машинного нуля и машинной бесконечности.
При оптимальном округлении абсолютная ошибка:
![|\Delta X| \le 0,5*2^{-n}](/sites/default/files/tex_cache/13783e12981e5d84411cc8733d841a89.png)
Минимальная относительная ошибка:
![|\delta x|_{min} = \frac{|\Delta X|}{|X|_{max}}=-\frac{0,5 \times 2^{-n}}{1-2^{-n}} = \approx 2^{-(n+1)}](/sites/default/files/tex_cache/6466c4a074557c4ff677cacdd6618c56.png)
так как при большом " n "
Максимальная относительная ошибка:
![|\delta x|_{max} = \frac{|\Delta X|}{|X|_{min}}=-\frac{0,5 \times 2^{-n}}{2^{-n}} = 0,5](/sites/default/files/tex_cache/80771ce88d578e6cdfe3bcbdf682430b.png)
Ошибка представления числа зависит от величины самого числа и способа округления:
Заметим, что для малых чисел ошибка может достигать большой величины.