Формы представления чисел

0

1

2

3

4

5

6

7

8

9

10

11

23

0

0

0

0

0

0

0

1

1

1

0

0

0

Знак числа

Знак порядка

Порядок

Мантисса

В ЭВМ применяется чаще всего одна из двух форм представления чисел:

– с фиксированной запятой (точкой);
– с плавающей запятой (точкой).

Числа представляются в машинном слове, имеющем для конкретной ЭВМ всегда фиксированное число разрядов (битов). Это число является одной из важнейших характеристик любой ЭВМ и называется разрядностью машины. Разные разряды слова при кодировании команд и данных имеют несовпадающие функциональные назначения. При рассмотрении их функций используют также термин «разрядная сетка машины».

В числах с фиксированной (естественной) запятой положение запятой в разрядной сетке машины заранее обусловлено для всех чисел раз и навсегда. Место запятой, отделяющей целую часть числа от дробной, определяется на этапе конструирования ЭВМ. Сразу же указывается количество разрядов, отводимых для изображения целой и дробной частей.

Единственной особенностью, о которой необходимо упомянуть, является ситуация, которая носит название «переполнение разрядной сетки» (переполнение с фиксированной запятой) и которая возникает, когда результат умножения превышает максимально возможное для данной разрядности значение. Эта ситуация считается в ЭВМ исключительной. При ее возникновении записать получившееся значение невозможно. В этом случае устанавливается в «1» специальный флаг переполнения, старший бит результата (бит переноса из старшего разряда слова) теряется, а в качестве результата выдается искаженное число. Описываемая ситуация не считается критической, и после окончания данной операции вычисления продолжаются.

Таким образом, программист сам должен позаботиться о корректной реакции на возникновение переполнения, используя для обнаружения указанной ситуации содержимое флага переполнения.

Иначе обстоит дело с операцией деления. При делении целого числа на другое целое результат совсем не обязательно должен быть целым. А поскольку и результат должен быть представлен целым числом, возникает коллизия.

Таким образом, естественная форма приводит к некоторым неудобствам. При работе с ней постоянно приходится следить за правильным и эффективным использованием разрядной сетки, чтобы числа не выходили за старший разряд и в то же время, чтобы старшие разряды использовались как значащие. Основное преимущество данной формы – простота арифметических операций, недостаток – слишком узкий диапазон представления чисел.

Для того чтобы автоматизировать действия по эффективному использованию всей разрядной сетки, а также значительно увеличить диапазон изображения чисел, в ЭВМ введена еще одна форма представления чисел – с плавающей точкой, или полулогарифмическая. Эта форма основана на том, что в изображения чисел введен дополнительный коэффициент Ар, т.е.

[X]п.т.= Ар M,

где [X]п.т.– полулогарифмическая форма представления чисел;
р – степень основания порядка, или просто порядок;
А – основание порядка; М – мантисса, определяющая числовое значение.

Основание порядка А для каждой ЭВМ постоянно, назначается заранее и подразумевается, а само изображение с порядками формируется из двух частей: порядка и мантиссы.

В форме с плавающей запятой число представляется двумя компонентами: мантиссой и порядком. Мантисса используется для записи цифр числа, а порядок – для указания положения запятой.

Разрядная сетка машины в этом случае делится на несколько частей:

– один разряд – для кодирования знака числа (это всегда самый старший, левый, разряд слова);
– M разрядов – для записи мантиссы;
– Р разрядов – для записи порядка (с учетом его знака).

Порядок р содержит знаковый разряд, от значения которого коэффициент А может быть целым или дробным. Мантисса числа всегда считается дробной, а знак мантиссы определяет знак всего числа.

Например, в десятичной системе счисления число 3,14 представим в виде

3,14 = 0,314∙101,

где мантисса равна 0,314, а порядок 1.

Очевидно, такое представление далеко не однозначно. Можно ведь 3,14 записать так:

3,14 = 3,14∙10= 31,4∙10-1 = 0,0314∙102 = …,

Порядок числа определяет положение запятой в записи мантиссы. При корректировке порядка соответствующим образом меняется и положение запятой – запятая как бы «плавает». Отсюда и название метода представления чисел.

Полулогарифмическая форма приводит к неоднозначности изображения, поскольку одно и тоже число может быть изображено по–разному. Например, пусть А=2. изобразить в полулогарифмической форме число 1310=11012. возможны следующие изображения:

Р

0100 (4)

0101 (5)

0110 (6)

А

0.110100

0.011010

0.001101

Местоположение запятой при этом тоже строго фиксируется: считается, что мантисса всегда представляется как число, меньшее единицы, но такое, в котором первая цифра после запятой для всех абсолютно чисел отлична от нуля (единственное исключение составляет число 0). Такая форма представления мантиссы называется нормализованной. Иначе говорят, что мантисса нормализована (приведена к виду: 1 < M ≤ 0,1), например, для числа 3,14 нормализованная форма будет выглядеть так:

3,14 = 0,314∙101.

Для числа -0,00062, получим форму -0,62∙10-3 (мантисса равна -0,62, а порядок равен -3), причем это форма будет нормализованной.

Если известно, что мантисса имеет вид «0,xxxx..», то ее код в машинном слове может не содержать символов «0,», а местоположение запятой предполагается перед старшей значащей цифрой мантиссы.

Порядок Р всегда представляется целым числом со знаком + или -. А для кодирования абсолютной величины порядка остается (Р-1) цифр.

Например, число, записанное в двоичной системе счисления 110(2) (6(10)=110(2)) можно представить в двоичной нормализованной форме в виде

110(2) = 0,11∙23,

или используя только двоичные цифры, получим 110(2) = 0,11∙1011.

При представлении чисел с плавающей запятой в ячейке памяти ЭВМ выделяют группы разрядов для изображения мантиссы, порядка, знака числа и знака порядка. Если в ячейке 24 разряда, то, перенумеровав их с нулевого номера по двадцать третий, можно распределить их, например, следующим образом: нулевой разряд отвести под знак числа, первый – под знак порядка, в следующих семи разрядах, т.е. со 2-го по 8-й – порядок, и, наконец, с 9-го по 23-й разряды отводятся под мантиссу числа. Причем знак «+» обозначается 0, а «–» обозначается 1.

Пример, 4(10) = 100(2) = 0,1∙1011 в 24-разрядной ячейке будет выглядеть в следующем виде:

0

1

2

3

4

5

6

7

8

9

10

11

23

0

0

0

0

0

0

0

1

1

1

0

0

0

Знак числа

Знак порядка

Порядок

Мантисса

Пример, -9,5(10) = -1001,1(2) = -0,10011∙10100 в 24-разрядной ячейке будет выглядеть в следующем виде:

0

1

2

3

4

5

6

7

8

9

10

11

12 13 14 23

1

0

0

0

0

0

1

0

0

1

0

0

1

1

0

0

Знак числа

Знак порядка

Порядок

Мантисса

Для повышения точности представления чисел используется запись чисел с так называемой двойной точностью. В этом случае число записывается не в одной, а в двух подряд идущих ячейках памяти, причем вторая ячейка используется для записи последующих цифр мантиссы.

Форма представления чисел с плавающей запятой позволяет записывать числа из весьма широкого диапазона и с достаточно высокой точностью. Что является преимуществом данной формы. Недостатком формы представления чисел в форме с плавающей запятой является значительное усложнение арифметических операций.

Добавить комментарий