Фиксированная запятая (точка).
Замечание.В русском языке принято называть разделитель целой и дробной части дроби запятой, а в английском – точкой. Поскольку современная вычислительная терминология формировалась на английском языке, то словосочетания «фиксированная точка» и «плавающая точка» вошли в русскую компьютерную лексику.
В форме представления с фиксированной запятой (точкой) числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной.
Например, для числа 1355,1875(10), что соответствует 010101001011,0011(2), запись следующая:
Целая часть Дробная часть
=1355 + 3/16 |
15 4 3 0
Представление числа с фиксированной точкой концептуально самое простое, берется двоичное число и объявляется, что определенная часть его младших разрядов представляет собой дробную часть в позиционной системе счисления.
Например, пусть числа представлены в десятичной системе счисления и имеют пять разрядов в целой части числа (до запятой) и пять в дробной части (после запятой).
Числа, записанные в такую разрядную сетку, имеют вид:
+00721.35500.
+00000.00328.
-10301.20260.
Диапазон значащих чисел N в системе счисления с основанием Р при наличии тразрядов в целой части и sразрядов в дробной части числа (без учета знака числа) будет таким:
P-s ≤ N≤ Pm – Р-s
Например, при Р=2, m=10 и s = 6 числа изменяются в диапазоне 0,015 < N< 1024. Если в результате операции получится число, выходящее за допустимые пределы, произойдет переполнение разрядной сетки, и дальнейшие вычисления теряют смысл.
Положение запятой строго фиксировано и при этом предполагается:
- положение запятой закрепляется в определенном месте и сохраняется неизменным для всех чисел, изображаемых в принятой разрядной сетке машины;
- хотя запятая и фиксируется, но никак не выделяется в коде числа, а только подразумевается.
Обычно в ЭВМ используется два способа расположения запятой:
-перед старшим разрядом (Р=0);
-после младшего разряда (Р=n), где n –число разрядов, отводимых под цифровую часть числа. Во втором случае представляются только целые числа со знаком.
Выход исходных чисел, а также чисел, полученных в процессе вычислений, за пределы допустимого диапазона приведет к грубым ошибкам. Чтобы этого избежать, необходимо при разработке программ исходные числа масштабировать.
Недостатки. Имеет небольшой диапазон представления чисел и поэтому чаще всего неприемлема при вычислениях. В современных компьютерах естественная форма представления используется как вспомогательная и только для целых чисел.
Достоинство. Эта форма наиболее проста, естественна и для представления чисел с фиксированной точкой можно построить сравнительно несложное арифметическое устройство с высоким быстродействием.
В памяти ЭВМ числа с фиксированной точкой хранятся в трех форматах:
а) полуслово — 16 бит, или 2 байта;
б) слово — 32 бита, или 4 байта;
в) двойное слово — 64 бита, или 8 байтов.
Отрицательные числа с ФТ записываются в разрядную сетку в дополнительных кодах, которые образуются прибавлением единицы к младшему разряду обратного кода. Обратный код получается заменой единиц на нули, а нулей на единицы в прямом двоичном коде.
В числах со знаком выделяют дополнительный знаковый разряд (обычно, крайний слева). В нем для знака плюс записывают цифру 0, а для знака минус — цифру 1. В числах без знака все разряды числа определяют модуль. Форматы двоичных дробных и целых чисел со знаком, с нумерацией разрядов справа налево и значением их веса показаны на рис. 1.7.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Нумерация разрядов
+/- | 26 | 25 | 24 | 23 | 22 | 21 | 20 | +/- | , | 2-1 | 2-2 | 2-3 | 2-3 | 2-4 | 2-6 | 2-7 |
Форма байта для целого числа Форма байта для правильной дроби
Рисунок 1.7 – Формат байта
Числа в разрядную сетку записывают в соответствии с весом позиций. Не занятые разряды заполняют нулями, как это показано на рис. 1.8 для чисел +0,72510 = +0,101112 и -4710 = -1011112.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
, |
Запись целого числа -1011112 Запись правильной дроби +0,101112
Рисунок 1.8 – Запись чисел
Интервал числовой оси, заключенный симметрично между максимальным и минимальным значением числа, называется диапазоном представления.
Абсолютное значение целого числа А изменяется в пределах:
Аmin ≤ | А | ≤ Аmax Аmin = 1; Аmax = 2k - 1, (1.1 )
где к— количество разрядов цифровой части числа.
Из выражения (1.1) следует, что числа, по абсолютному значению меньше единицы, воспринимаются как "машинный нуль"; числа, больше Аmax, вызывают переполнение разрядной сетки. Диапазон представления целых чисел с учетом симметрии относительно нуля числовой оси
Пример 1.1 Рассчитать максимальное значение и диапазон представления целого числа со знаком в 16-разрядной сетке. На основе выражений (1.1) и (1.2) для k = 15 получаем: Аmax = 215 - 1 = 32767; D = 2Аmax = 65534. |
Абсолютное значение правильной дроби В изменяется в пределах:
Вmin ≤ | В | ≤ Вmax Вmin = 2-k Вmax = 1 - 2k, (1.3)
Правильная дробь, по модулю меньше 2-k, воспринимается как "машинный нуль"; числа, больше единицы, вызывают переполнение разрядной сетки.
Диапазон представления правильной дроби:
Пример 1.2 Рассчитать максимальное значение и диапазон представления правильной дроби в 16-разрядной сетке. На основе выражений (1.3) и (1.4) для k = 15 получаем: Вmax = 1 - 215 = -32767 D = 2Вmax = -65534. . |
Точность представления чисел в компьютере определяется абсолютной и относительной погрешностью.
Абсолютная погрешность ∆ представления чисел в компьютере составляет:
для целых чисел: ∆А = 1/2 = 2-1 где А –целое число (1.5)
для правильной дроби: ∆В = 2k/2 = 2-(k+1) где В –правильная дробь (1.6)
Из выражения (1.5) следует, что абсолютная погрешность представления целых чисел в форме с фиксированной запятой равна половине младшего разряда и не зависит от длины разрядной сетки. Из выражения (1.6) видно, что абсолютная погрешность представления правильной дроби в форме с фиксированной запятой уменьшается при увеличении длины разрядной сетки.
Относительная погрешность δ представления числа задается отношением абсолютной погрешности к текущему значению числа и находится в пределах
δmin ≤ δ ≤ δmax
Для целых чисел в форме с фиксированной запятой минимальное и максимальное значения относительной погрешности
δAmin = = ≈ 2-(k+1) δAmax= = = 0,5
Такими же формулами определяются минимальное и максимальное значения относительной погрешности для правильной дроби с фиксированной запятой.
Относительная погрешность представления чисел в форме с фиксированной запятой существенно зависит от значения числа и значительно возрастает для малых чисел.