ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 5249

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Типы и форматы операндов 69

Рис, 2.16. Представление числа -7396 в зонном

При выполнении операций сложения и вычитания над десятичными числами

обычно используется упакованный формат и в нем же получается результат (умно-
жение  деление возможно только в зонном формате). В упакованном формате

(рис.

 б) каждый байт содержит коды двух десятичных цифр. Правая тетрада

последнего байта предназначается для записи знака числа. Десятичное число долж-
но занимать целое количество байтов. Если это условие не выполняется, то четыре
старших двоичных разряда левого байта заполняется нулями. Так, представление

числа -7396 в упакованном формате имеет вид, приведенный на рис. 2.17.

Рис. 2.17. Представление числа -7396 в упакованном формате

Размещение знака в младшем байте, как в зонном, так и в упакованном пред-

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

Числа в форме с плавающей запятой

От недостатков ФЗ в значительной степени свободна форма представления чисел

с

 плавающей запятой

 (ПЗ), известная также под названиями

 нормальной

 или

 по-

лулогарифмической

 формы. В данном варианте

 число разбивается на две

группы цифр. Первая группа цифр называется

 мантиссой,

 вторая —

 порядком.

Число представляется в виде произведения

 X

 =

 где

 т

 — мантисса числа

 X,

р

 — порядок числа,

 q

 — основание системы счисления.

Для представления числа в форме с ПЗ требуется задать знаки мантиссы и по-

рядка, их модули в

 коде, а также основание системы счисления (рис. 2.18).

Нормальная форма неоднозначна, так как взаимное изменение  и  приводит

к «плаванию» запятой, чем и обусловлено название этой формы.

Рис.

 Форма представления чисел с плавающей запятой

Диапазон и точность представления чисел с ПТ зависят от числа разрядов, от-

водимых под порядок и мантиссу. На рис. 2.19 показаны диапазоны разрядностей
порядка и мантиссы, характерные для известных ВМ.


background image

70 Глава 2. Архитектура системы команд

Рис.

 Типовые разрядности полей порядка и мантиссы

Помимо разрядности порядка и мантиссы диапазон представления чисел зави-

сит и от основания используемой системы счисления, которое может быть отлич-
ным от 2. Например, в универсальных ВМ (мэйнфреймах) фирмы IBM использу-
ется база 16. Это позволяет при одинаковом количестве битов, отведенных под
порядок, представлять числа в большем диапазоне. Так, если поле порядка равно
7 битам, максимальное значение

 на которое умножается мантисса, равно

(при

 q

 = 2) или 16

128

 (при

 q

 = 16), а диапазоны представления чисел соответствен-

но составят 10

-19

 <|

Х|<

 10

-76

 <|

Х| <

 Известны также случаи использо-

вания базы 8, например, в ВМ В-5500 фирмы Burroughs.

 большинстве вычислительных машин для упрощения операций над поряд-

ками последние приводят к целым положительным числам, применяя так называ-
емый

 смещенный порядок.

 Для этого к истинному порядку добавляется целое по-

ложительное число — смещение (рис. 2.20). Например, в системе со смещением

128 порядок -3 представляется как 125 (-3 + 128). Обычно смещение выбирается

равным половине представимого диапазона порядков. Отметим, что смещенный
порядок занимает все биты поля порядка, в том числе и тот,

 ранее ис-

пользовался для записи знака порядка.


background image

Типы и форматы операндов

Мантисса в числах с ПЗ обычно представляется в

 нормализованной форме.

 Это

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

 < 1), а первая цифра после точки отличалась от нуля. Полу-

ченная таким образом мантисса называется

 нормализованной.

 Для применяемых

в ВМ систем счисления можно записать:

 (1  |

q|

 S);

-восьмеричная: X =

 (1 > |

q|

 = ?);

-шестнадцатеричная: X =

 (1

 >|q|

 = 1/16).

Если первые  цифр мантиссы равны нулю, для нормализации ее нужно сдви-

нуть относительно запятой на

 i

 разрядов влево с одновременным уменьшением

порядка на

 i

 единиц. В результате такой операции число не изменяется.

База

2

16

До нормализации

Порядок

100

8

Мантисса

0,000110

0,001 х 10

9

После нормализации

Порядок

001

6

Мантисса

0,110000

0,1

В примере для шестнадцатеричной системы после нормализации старшая цифра

в двоичном представлении содержит впереди три нуля (0001). Это несколько умень-
шает точность представления чисел по сравнению с двоичной системой при оди-
наковом числе двоичных разрядов, отведенных под мантиссу.

Если для

 числа с ПЗ используется база 2

 (q

 = 2), то часто применяют

еще один способ повышения точности представления мантиссы, называемый

 при-

емом скрытой единицы.

 Суть его в том, что в нормализованной мантиссе старшая

цифра всегда равна единице (для представления нуля используется специальная
кодовая комбинация), следовательно, эта цифра может не записываться, а подра-

зумеваться. Запись мантиссы начинают с ее второй цифры, и это позволяет задей-
ствовать дополнительный значащий бит для более точного представления числа.

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

единица перед выполнением арифметических

 восстанавливается, а при

записи результата — удаляется. Таким образом, нормализованная мантисса

0,101000(1) при использовании способа «скрытой единицы» будет иметь вид

 (в скобках указана цифра, не поместившаяся в поле мантиссы при стан-

дартной записи).

Для более существенного увеличения точности вычислений под число

несколько машинных слов, например два. Дополнительные биты, как правило,

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

Рассмотренные принципы представления чисел с ПЗ поясним на примере [200].

На рис.

 представлен типичный 32-битовый формат числа с ПЗ. Старший (ле-

вый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах


background image

72 Глава

 Архитектура системы команд

с 1-го по 8-й и может находиться в диапазоне от 0 до 255. Для получения фактичес-
кого значения порядка из содержимого этого поля нужно вычесть фиксированное

значение, равное 128. С таким смещением фактические значения порядка могут
лежать в диапазоне от -128 до +127. В примере предполагается, что основание си-
стемы счисления равно 2. Третье поле слова содержит нормализованную мантис-
су со скрытым разрядом (единицей). Благодаря такому приему 23-разрядное поле
позволяет хранить 24-разрядную мантиссу в диапазоне of 0,5 до 1,0.

Рис.

 Типичный 32-битовый формат числа с плавающей запятой

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

мощью 32-разрядного слова.

 целые числа

Рис.

 2.22. Числа,

 в 32-битовых форматах: а — целые числа с фиксированной

запятой;

 б —

 числа с плавающей запятой

В варианте с ФЗ для целых чисел в дополнительном коде могут быть представ-

лены все целые числа от -2

3 1

 до 2

31

 -  то есть всего 2

32

 различных чисел (см. рис.

2.22,

 а).

 Для случая ПЗ возможны следующие диапазоны чисел (см. рис. 2.22,

• отрицательные числа между  - ( 1 - 2

-24

) х 2

1 2 7

 и -0,5 х 2"

128

;

• положительные числа между 0,5 х 2~

128

 и

 - 2

-24

) х 2

127

.

В эту область не включены пять участков:

• отрицательные числа, меньшие чем

 - 2

-24

) х 2

1 2 7

 —

 отрицательное пере-

полнение;


background image

Типы и форматы операндов 73

• отрицательные числа, большие чем -0,5 х 2 —

 отрицательная потеря зна-

чимости;

• положительные числа, меньшие чем 0,5 х 2

-28

 —

 положительная потеря значи-

мости;

• положительные числа, большие

 - 2

-24

) х 2

127

 —

 положительное переполнение.

Показанная запись числа с ПЗ не учитывает нулевого значения. Для этой цели

используется специальная кодовая комбинация. Переполнения возникают, когда
в результате арифметической операции получается значение большее, чем можно
представить порядком 127 (2

120

 х 2

100

 2

230

 ). Потеря значимости — это когда резуль-

тат представляет собой слишком маленькое дробное значение (2

-120

 х 2

-100

 = 2

-230

 ).

Потеря значимости является менее серьезной проблемой, поскольку такой резуль-

тат обычно рассматривают как нулевой.

Следует также отметить, что числа в форме с ПЗ, в отличие от чисел в форме

с ФЗ, размещены на числовой оси неравномерно. Возможные значения в начале
числовой оси расположены плотнее, а по мере движения вправо — все реже
(рис. 2.23). Это означает, что многие вычисления приводят к результату, который
не является точным,.то есть представляет собой округление до ближайшего значе-
ния, представимого в данной форме записи.

Для формата, изображенного

 рис.

 имеет место противоречие между диа-

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

 может быть представ-

лено только фиксированное число различных значений, уменьшается плотность

и тем самым точность. Единственный путь увеличения как диапазона, так и точ-
ности — увеличение количества разрядов, поэтому в большинстве ВМ предлагает-

ся использовать числа в одинарном и двойном форматах. Например, число оди-
нарного формата может занимать 32 бита, а двойного — 64 бита.

Числа с плавающей запятой в разных ВМ имеют несколько различных форма-

тов. В табл. 2.5 приводятся основные параметры для нескольких систем представ-
ления чисел в форме с ПЗ. В настоящее время для всех ВМ рекомендован стан-

дарт, разработанный общепризнанным международным центром стандартизации

IEEE (Institute of Electrical and Electronics Engineers).

Таблица 2.5.

 Варианты форматов чисел с плавающей запятой

1


Смотрите также файлы