И плавающей запятой
ЭВМ оперирует с числами, содержащими конечное число разрядов. Как понятно из рассмотренного ранее материала, количество разрядов ограничено длиной разрядной сетки машины.
Для представления чисел в ЭВМ используется две формы: естественная (с фиксированной запятой) и нормальная (с плавающей запятой).
При естественной форме представления чисел положение запятой, отделяющей целую часть числа от дробной, строго фиксировано в разрядной сетке машины. В качестве знакового разряда обычно выделяется крайний левый разряд.
Количество двоичных разрядов и положение запятой в разрядной сетке определяют такие важные характеристики ЭВМ, как точность и диапазон представляемых чисел.
На практике используются два способа расположения фиксированной запятой: перед старшим разрядом или после младшего разряда (соответственно, рисунок 2, а и 2, б).
знак числа | 2-1 | 2-2 | ... | 2-n+1 | 2-n |
а)
знак числа | 2n-1 | 2n-2 | ... | 21 | 20 |
б)
Рисунок 2 – Разрядная сетка ЭВМ при естественной форме записи числа
В разрядной сетке, представленной на рисунке 2, а, могут быть записаны лишь правильные дроби с точностью, определяемой весом младшего разряда
½ Х ½мин = 2-n.
В разрядной сетке, представленной на рисунке 2, б, могут быть записаны лишь целые числа. В этом случае
½ Х ½макс = 2n – 1,
½ Х ½мин = 1.
Чтобы избежать переполнения разрядной сетки при выполнении арифметических операций над числами, представленными в нормальной форме, используется масштабирование.
Недостатком формы с фиксированной запятой является малый диапазон представления чисел. Минимальное по модулю число, представляемое в ЭВМ в данном случае, равно 2-n, а максимальное – (1 - 2-n) (или, приближенно 0 £ | Х | < 1).
Достоинство представления чисел в форме с фиксированной запятой состоит в возможности построения сравнительно несложных операционных устройств с высоким быстродействием.
Нормальная форма представления чисел позволяет избежать трудоемкого масштабирования исходных чисел и значительно увеличить диапазон и точность представляемых чисел.
При использовании нормальной формы любое число изображается в следующем виде:
Х = M КL,
где M – мантисса числа (записанная в виде правильной дроби);
К – основание системы счисления;
L – порядок числа, определяющий положение запятой в числе.
Мантисса и порядок задаются в системе счисления с основанием К, знак числа совпадает со знаком мантиссы.
На рисунке 3 показана разрядная сетка машины, используемая для записи чисел в формате с плавающей запятой.
знак L | 2n-1 | ... | 21 | 20 | знак М | 2-1 | 2-2 | ... | 2-m+1 | 2-m |
Рисунок 3 – Разрядная сетка ЭВМ с плавающей запятой
Если порядок числа выбран так, что в старшем разряде мантиссы стоит 1, то число называется нормализованным.
Диапазон представления чисел с плавающей запятой значительно больше диапазона представления чисел с фиксированной запятой. Однако быстродействие ЭВМ при обработке чисел с плавающей запятой гораздо ниже, чем при обработке чисел с фиксированной запятой, а АЛУ – более сложно в реализации.
В общем случае диапазон представления чисел в формате с плавающей запятой определяется неравенством
В некоторых ЭВМ для упрощения операций над порядками используют форму с плавающей запятой с так называемым «смещенным порядком». В этом случае порядки – всегда положительные целые числа. Разрядная сетка ЭВМ будет иметь вид (рисунок 4):
знак М | 2n-1 | ... | 21 | 20 | 2-1 | 2-2 | ... | 2-m+1 | 2-m |
Рисунок 4
На рисунке 4 ячейки с положительными значениями показателя степени отведены для записи смещенного порядка числа, а с отрицательными – для записи мантиссы. Смещенный порядок представляет собой сумму двух чисел – самого порядка и смещения. Смещение выбирается таким образом, чтобы минимальному значению порядка соответствовал 0. Например, если порядок может принимать значения в диапазоне от 2-1023 до 21023, то смещение равно 1023(10). Число – 312,3125(10) = 100111000,0101(2), записанное в разрядную сетку ЭВМ, в этом случае будет иметь порядок:
9 + 1023 = 1032(10) = 10000001000(2).
В специализированных ЭВМ, для которых диапазон чисел ограничен, в основном используется представление чисел в форме с фиксированной запятой, так как вычисления в этом случае можно реализовать проще и быстрее. В ЭВМ общего назначения чаще применяется форма с плавающей запятой, а форма с фиксированной запятой служит только для вычислений с целыми числами.