Форми представлення чисел. Порівняння методів фіксованої та плаваючої коми.
Необходимость в указании положения запятой отпадает, если место запятой в разрядной сетки машины заранее фиксировано раз и навсегда. Такая форма представления чисел называется представлением с фиксированной запятой (точкой).
Так как числа бывают положительные и отрицательные, то формат (разрядная сетка) машинного изображения разбивается на знаковую часть и поле числа. В поле числа размещается само изображение числа, которое мы будем условно называть мантиссой числа. Для кодирования знака числа используется самый старший разряд разрядной сетки, отведенной для изображения двоичного числа, а остальные разряды отводятся под мантиссу числа. Положение запятой в разрядной сетке строго фиксируется, обычно или правее самого младшего разряда мантиссы, или левее самого старшего. В первом случае число представляется как целое, во втором - как правильная дробь. В настоящее время в подавляющем большинстве в компьютерах в формате с фиксированной точкой представляются целые числа.
В знаковую часть записывается информация о знаке числа. Принято, что знак положительного числа "+" изображается символом 0, а знак отрицательного числа "-" изображается символом 1.
Например, в двоичном коде, используя 6-разрядную сетку, число 7 в форме с фиксированной запятой можно представить в виде:
0.001112,
где цифра левее точки это знак числа, а пять цифр правее точки - мантисса числа в прямом коде. Здесь подразумевается, что запятая фиксирована правее младшего разряда, а точка в изображении числа в данном случае просто разделяет знаковый бит от мантиссы числа.
В дальнейшем часто будет использоваться в примерах такой вид представления числа в машинной форме. Можно использовать и другую форму представления числа в машинной форме:
[0]001112,
где знаковый разряд выделяется квадратными скобками.
Количество разрядов в разрядной сетке, отведенное для изображения мантиссы числа, определяет диапазон и точность представления числа с фиксированной запятой. Максимальное по абсолютной величине двоичное число изображается единицами во всех разрядах, исключая знаковый, т.е. для целого числа
|A|max = (2(n-1) - 1),
где n - полная длина разрядной сетки. В случае 16-разрядной сетки
|A|max = (2(16-1) - 1) = 3276710 ,
т.е. диапазон представления целых чисел в этом случае будет от +3276710 до -3276710 .
Для случая, когда запятая фиксируется правее младшего разряда мантиссы, т.е. для целых чисел, числа, у которых модуль больше, чем (2(n-1) - 1) и меньше единицы не представляются в форме с фиксированной запятой. Числа, по абсолютной величине меньше единицы младшего разряда разрядной сетки, называются в этом случае машинным нулем. Отрицательный ноль запрещен.
В некоторых случаях, когда можно оперировать только модулями чисел, вся разрядная сетка, включая самый старший разряд, отводится для представления числа, что позволяет расширить диапазон изображения чисел.