1.1 Модифицированный код
В разрядной сетке ЭВМ количество разрядов, отводимых для представления двоичных кодов чисел, ограничено. Поэтому при сложении двух чисел с одинаковыми знаками сумма может оказаться большей по модулю, чем максимальное число, которое можно поместить в разрядную сетку при заданном количестве разрядов. Вследствие этого результат сложения окажется неправильным. Такое явление называется переполнением разрядной сетки.
Чтобы избежать переполнения разрядной сетки, при подготовке задачи к решению на ЭВМ вводят масштабирующие коэффициенты, позволяющие уменьшить численное значение операндов по модулю. Однако, поскольку значения чисел, получаемых в процессе решения задачи, как правило, заранее неизвестны, эта мера не исключает возможности переполнения разрядной сетки.
Одним из способов, позволяющих выявлять случаи переполнения разрядной сетки, является применение модифицированного кода. Модификация заключается во введении дополнительного знакового разряда. При этом положительные числа кодируются двумя нулями, а отрицательные – двумя единицами, например: 00.101101,011; 11.111001,101.
Появление в знаковых разрядах результата комбинаций «01» и «10» является признаком переполнения разрядной сетки. При этом может быть выработан сигнал, прерывающий процесс вычислений и предупреждающий пользователя о том, что результат вычислений будет неверным.
2 Форматы представления чисел с фиксированной
и плавающей запятой
ЭВМ оперирует с числами, содержащими конечное число разрядов. Как понятно из рассмотренного ранее материала, количество разрядов ограничено длиной разрядной сетки машины.
Для представления чисел в ЭВМ используется две формы: естественная (с фиксированной запятой) и нормальная (с плавающей запятой).
При естественной форме представления чисел положение запятой, отделяющей целую часть числа от дробной, строго фиксировано в разрядной сетке машины. В качестве знакового разряда обычно выделяется крайний левый разряд.
Количество двоичных разрядов и положение запятой в разрядной сетке определяют такие важные характеристики ЭВМ, как точность и диапазон представляемых чисел.
На практике используются два способа расположения фиксированной запятой: перед старшим разрядом или после младшего разряда (соответственно, рисунок 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).
В специализированных ЭВМ, для которых диапазон чисел ограничен, в основном используется представление чисел в форме с фиксированной запятой, так как вычисления в этом случае можно реализовать проще и быстрее. В ЭВМ общего назначения чаще применяется форма с плавающей запятой, а форма с фиксированной запятой служит только для вычислений с целыми числами.
