Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-основы ИНФОРМАТИКА.doc
Скачиваний:
121
Добавлен:
09.04.2015
Размер:
868.35 Кб
Скачать

3.5. Представление информации в форме с фиксированной и плавающей точкой

При рассмотрении систем счисления мы оперировали в основном целыми числами, т.е. числами у которых точка, отделяющая целую часть числа от дробной, располагается справа от крайнего правого разряда. Но в инженерных и научных расчетах не обойтись без учета дробных чисел. Тогда точку можно располагать левее от крайних правых разрядов, добиваясь при этом необходимой точности вычислений. Так, в 16-pазpядном двоичном числе расположение точки справа от левого крайнего разряда даст максимальную точность при вычислении положительных значений синуса:

0.0000000000000002= 010

0.1000000000000002= 0.510

1.0000000000000002= 1.010

Разряд двоичного числа представляется в ЭВМ некоторым техническим устройством, например триггером, двум различным состояниям которого приписывают значения 0 или 1. Набор соответствующего количества таких устройств служит для представления многоразрядного двоичного числа.

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

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

Знак

2-1

2-2

2-31

0 1 2 3 4 5 6 ….. 31 - представление двоичных чисел с фиксированной точкой в виде 32-разрядных слов для случая закрепления точки перед старшим разрядом.

Знак

230

20

0 1 2 3 4 5 6 ….. 31 - представление двоичных чисел с фиксированной точкой в виде 32 разрядных слов для случая закрепления точки после младшего разряда.

Для кодирования знака числа используется «знаковый» разряд: 0 - это +(плюс), 1 - это(минус). Наибольшее положительное число, представимое в первой разрядной сетке, равно 0,1..1 = 1-2-31 , а наименьшее число 0,00…01 = 2-31Таким образом, в разрядной сетке могут быть представлены числа в диапазоне от –(1-2-31) до -2-31и от 2-31до (1-2-31). Диапазон чисел, для второго случая:

1х231-1.

При выполнении на машине вычислений необходимо чтобы все исходные и получающиеся в процессе вычислений данные не выходили за диапазон чисел, представимых в разрядной сетке.

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

Недостаток формата с фиксированной точкой (сравнительно небольшой диапазон представляемых чисел) устраняется представлением чисел в формате с плавающей точкой(floating point format), который является основным в компьютерах. Одако наряду с этой формой представления используется также и представление с фиксированной точкой для целых двоичных чисел и операций над ними, в частности операции над кодами адресов.

В формате с плавающей точкой разряды числа разбиваются на два поля, имеющие названия мантисса и порядок. Если обозначить мантиссубуквой M, апорядок- P, то величина числаX =_{M}{P}. Эта запись является двоичным эквивалентом известной формы записи десятичных чиселX=M10,например, 200=210+2, 36000000000=3610+9. структура 16-pазpядного числа в представлении с плавающей точкой ипримерыданы в таблице.

Знак порядка

Модуль порядка

Знак мантиссы

Модуль мантиссы

Результат

15

14…10

9

8…0

0

00000

0

000000000

020

0

00000

1

000000001

-120

1

00100

0

010001100

-1402-4

0

11111

0

111111111

511231

Из последнего примера видно, что всего 16 бит могут представлять очень большие числа. Но, отобрав шесть разрядов под порядок, мы уменьшили точность представления числа.

Интересной особенностью формата с плавающей точкой является возможность представления одного числа различными комбинациями значений мантиссы и порядка. Так, например, нуль в этом формате может быть записан 64 способами (мантисса равна 0, порядок принимает любое значение), другие числа могут иметь до 9 представлений, например:

32=12+5=22+4=42+3=82+4=162+1=322+0

2560=52+9=102+8=202+7=402+6=802+5=…=12802+1.

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

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

Представление числа с плавающей точкой в общем виде имеет вид:

X=spq;q1

где qмантисса числа Х,

p– порядок,

s– основание характеристики.

Обычно число sсовпадает с основанием мантиссыq. Мантиссаq– правильная дробь. Порядокp, который может быть положительным или отрицательным целым числом, определяет положение запятой в числе Х. Для двоичных чисел

х = 2pq;q1.

Рассмотрим примерв котором слова имеют длины 32 двоичных разряда. Пусть число Х =2pq, изображается в машине двоичным словом а0в0в1… в6а1а2….a24которому соответствует следующий формат данных:

a0

b0

b1

b6

a1

a2

a24

Разряды в0..в6 используются для представления порядка при этом разряд в0 изображает знак порядка, а разряды в1.. в6 – модуль порядка, остальные разряды а0 .. а24 отводятся под изображение мантиссы, причем а0 – знак мантиссы а1.. а24 – модуль мантиссы. Двоичное число х= 2pq, называется нормализованным, если мантиссаQудовлетворяет следующему условию 1q½, т.е. двоичное число нормализовано если в старшем разряде мантиссы стоит 1. Под порядок отведено со знаком 7 разрядов то порядок может быть от –63 до +63 соответственно. Наибольшее и наименьшее нормализованное положительные числа в этой разрядной сетке соответственно равны:

263*0,111 … 1 = 263(1-2-24) и

2-63*0,1000..0=2-64.

Следовательно с учетом знака qв этой разрядной сетке можно представить числа, лежащие в диапазоне от –263(1-224) до –2-64и от +2-64до +263(1-2-24), что значительно превышает диапазон чисел с фиксированной точкой, представимых в том же 32х-разрядном слове. При фиксированном количестве разрядов мантиссы любая величина, представляется в машине с наибольшей возможной точностью нормализованным числом. Если в процессе вычислений получается ненормализованное число, то машина с плавающей запятой автоматически нормализует его. Пустьrстарших разрядов мантиссы равно 0. Тогда, нормализация заключатся в сдвиге мантиссы наrразрядов влево и уменьшении порядка наrединиц. При этом в младшиеrразрядов мантиссы записывается 0. В последних моделях ЭВМ получило распространение представление чисел с плавающей запятой в системах счисления с основанием, равным целой степени числа 2 (S=2w), х =spq(1>q1/s). При этом порядок представляется двоичным целым числом, а мантиссаq– числом, в котором группы поwдвоичных разрядов изображают цифры мантиссы с основанием системы счисленияs=2w. Использование для чисел с плавающей запятой недвоичного основания несколько уменьшает точность вычислений (при заданном количестве разрядом мантиссы), но позволяет увеличить диапазон представимых в машине чисел и ускорить выполнение некоторых операций, в частности нормализации, за счет того, что сдвиг может производиться на несколько разрядов сразу. В ЕС ЭВМ числа с плавающей запятой представляются в шестнадцатеричной системе счисления: х=16pq(1>q1/16) .

a0

b0

b1

b6

r1

r2

r6

Модуль порядка pизображается целым шестиразрядным двоичным числом,. а мантиссаqрассматривается как число, составленное из шестнадцатеричных цифр в виде:

6

q=Гj 16-jj = 0,1,2 …,F)

j=1

В случае с шестнадцатеричными числами с плавающей запятой число Х считается нормализованным, если старшая шестнадцатеричная цифра Г1 отлична от 0. В нормализованном числе три старшие двоичные цифры могут равняться 0. Диапазон представления нормализованных чисел: -1663(1-16-6) до –16-64и от +16-64до 1663(1-16-6). Для упрощения операций над порядками их сводят к действиям над целыми положительными числами, применяя представление чисел с плавающей запятой со смещенным порядком (ЕС ЭВМ). В случае чисел со смещенным порядком при записи числа в память к его порядкуpприбавляется целое число – смещениеN=2k, гдеk– число двоичных разрядов, используемых для модуля порядка. Смещенный порядокpсм=p+Nвсегда положителен. Для его представления нужно такое же число разрядов как дляpсо знаком.

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