Смекни!
smekni.com

Конспект лекций по дискретной математике (стр. 11 из 14)

m - число разрядов мантиссы

В общем случае диапазон представления нормализованной мантиссы в виде правильной дроби при основании порядка S имеет вид :

1/S£MAH<1

При выполнении арифметических операций при некоторых соотношениях операндов могут возникать ситуации когда результат операции выходит за пределы диапазона.

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

В терминологии стандарта IEEE последняя ситуация называется антипереполнением.

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

2) СМ ЭВМ (РДР-11, VAX-11)

КФ 31 30 23 22 0

sign характеристика мантисса

В качестве основания порядка S=2. Смещенный порядок (характеристика) занимает 8 разрядов, величина смещения равна весу старшего разряда смещения. В мантиссе используется скрытый разряд.

0£xa£255

-128£Pa£127

-1£MaH£1

IEEE

КФ (КВ) 31 30 23 22 0

sign характеристика мантисса

ДФ (ДВ) 63 62 52 51 0

sign характеристика мантисса

РФ (РВ) 79 78 64 63 0

sign характеристика мантисса

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

КФ: d=27-1=127; ДФ: d=210-1=1023; РФ: d=214-1=16383

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

Максимальное значение характеристики, представленное всеми единицами при положительном знаке зарезервированно для представления значения +¥ (нулевая мантисса) и представление так называемых “не чисел” (NAN). Максимальное значение характеристики используется для преставления -¥,¤, (неопределенность) в старшем разряде единица, в остальных - ноль.

Минимальное значение характеристики, представленное всеми нулями зарезервированно для представления “денормализованных” чисел (положительных и отрицательных) и нуля (всеми нулями формата).

КФ:

1£xa£254

-126£Pa£127

1£MaH£2

ДФ: 10-308<|Ап.з.|<10308

РФ: 10-4932<|Ап.з.|<104932

Точность представления чисел

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

Абсолютная погрешность:

А=А-А*, где А - точное значение

А* - машинное представление

А - знаковая величина

Относительная погрешность:

, иногда

Погрешность двоичной дроби

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

правильная дробь:

(n-разрядная)

1 1 1 …

Максимальная абсолютная погрешность правильной дроби равна весу ее младшего разряда.

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

Точность представления чисел с плавающей запятой принято оценивать их максимальные относительные погрешности. Точность определяется в отношении нормализованных чисел.

Эта формула справедлива для мантисс, представленных правильной дробью, а так же неправильной.

Точность представления для коротких форматов в ЭВМ различных типов

ЕС ЭВМ

СМ ЭВМ

IEEE

Часто при проектировании специализированных ЭВМ возникает задача определения формата числа с плавающей запятой исходя из заданных требований по их диапазону и точности представления.

Методы округления чисел с плавающей запятой

Используются для увеличения точности представления чисел и применяются в тех случаях, когда результат операции представленный в ДФ или РФ переписывается из сопроцессора или FPU в память в более коротком формате. Методы округления в РС оговариваются международным стандартом IEEE-754(854). К ним относятся:

1. Округление усечением (разряды не вмещающиеся в формат отбрасываются)

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

3. Округление к ближайшему большему (к +¥)(для положительных чисел реализуется добавлением единицы к младшему разряду мантиссы; для отрицательных мантисса остается без изменений).

4. Округление к ближайшему меньшему (к -¥) (для положительных -мантисса не меняется; для отрицательных чисел - к ней добавляется единица).

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

. При этом максимальная относительная погрешность мантиссы становится равной весу старшего из отбрсываемых разрядов. По умолчанию используется метод округления к ближайшему. Методы округления (к -¥) и (к +¥) используются в “интервальной” арифметике для определения границ полученных результатов в смысле их точности.

Принципы выполнения арифметических операций в ЭВМ.

Основы двоичной арифметики.

Операция сложения целых чисел.

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

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

Для беззнаковых чисел переполнение фиксируется при возникновении переноса из старшего разряда .Этот перенос в процессорах 80Х86 фиксируется во флаге CF-carry flag.

Для знаковых чисел фиксация фиксируется во флаге OF-overflow flag.

Таким образом при программировании на Ассемблере после выполнения сложения беззнакового необходимо проверять CF, а после знакового OF.

Использование именно дополнительного кода в представлении знаковых целых чисел позволяет существенно упростить принцип их сложения и вычитания по сравнению с использованием прямого кода.

Примеры сложения: n=6

-32<=Aз<=31

0<=Aб<=63

A+B=C

A= -11 1.10101

B= -20 +1.01100

----------

C= -31 1.00001

зн. беззн.

A=11 0.01011 11 11

B=-20 1.01100 -20 44

-----------

C= -9 1.10111 -9 55(55)

Переполнение при знаковом сложении и способы его фиксации.

Переполнение может получиться только при сложении операндов с одинаковыми знаками.

зн. беззн.

A=17 0.10001 17 17

B=19 0.10011 19 19

----------

C= 1.00100 -28? 36(36)

зн. беззн.

A= -17 1.01111 -17 47

B= -19 1.01101 -19 45

-----------

C= 0.11100 28? 28?(92)

Переполнение при сложении знаковых целых чисел можно фиксировать одним из двух способов:

1) Сравнением знаков операндов и результата (при наличии ++ или - - знаков операндов и - или + соответственно в знаке результата фиксируется переполнение).

2) Сравнение переносов из двух старших разрядов (при наличии одного и только одного переноса фиксируется переполнение).Именно этот способ используется в процессорах корпорации INTEL для установки флага OF.

Операция вычитания целых чисел.

При использовании знаковых чисел операция может быть реализована одним из двух способов:

1) Сведением к сложению путем предварительного изменения знака второго операнда. При использовании дополнительного кода изменение знака предполагает операцию дополнения над ним ,то есть invert,+1.

2) Выполнение прямого(непосредственного) вычитания по аналогии со сложением вычитание выполняется поразрядно начиная с младших разрядов с учетом возникающих межразрядных заемов.