ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5249
Скачиваний: 8
Типы и форматы операндов 69
Рис, 2.16. Представление числа -7396 в зонном
При выполнении операций сложения и вычитания над десятичными числами
обычно используется упакованный формат и в нем же получается результат (умно-
жение деление возможно только в зонном формате). В упакованном формате
(рис.
б) каждый байт содержит коды двух десятичных цифр. Правая тетрада
последнего байта предназначается для записи знака числа. Десятичное число долж-
но занимать целое количество байтов. Если это условие не выполняется, то четыре
старших двоичных разряда левого байта заполняется нулями. Так, представление
числа -7396 в упакованном формате имеет вид, приведенный на рис. 2.17.
Рис. 2.17. Представление числа -7396 в упакованном формате
Размещение знака в младшем байте, как в зонном, так и в упакованном пред-
ставлениях, позволяет задавать десятичные числа произвольной длины и переда-
вать их в виде цепочки байтов. В этом случае знак указывает, что байт, в котором
он содержится, является последним байтом данного числа, а следующий байт по-
следовательности — это старший байт очередного числа.
Числа в форме с плавающей запятой
От недостатков ФЗ в значительной степени свободна форма представления чисел
с
плавающей запятой
(ПЗ), известная также под названиями
нормальной
или
по-
лулогарифмической
формы. В данном варианте
число разбивается на две
группы цифр. Первая группа цифр называется
мантиссой,
вторая —
порядком.
Число представляется в виде произведения
X
=
где
т
— мантисса числа
X,
р
— порядок числа,
q
— основание системы счисления.
Для представления числа в форме с ПЗ требуется задать знаки мантиссы и по-
рядка, их модули в
коде, а также основание системы счисления (рис. 2.18).
Нормальная форма неоднозначна, так как взаимное изменение и приводит
к «плаванию» запятой, чем и обусловлено название этой формы.
Рис.
Форма представления чисел с плавающей запятой
Диапазон и точность представления чисел с ПТ зависят от числа разрядов, от-
водимых под порядок и мантиссу. На рис. 2.19 показаны диапазоны разрядностей
порядка и мантиссы, характерные для известных ВМ.
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). Обычно смещение выбирается
равным половине представимого диапазона порядков. Отметим, что смещенный
порядок занимает все биты поля порядка, в том числе и тот,
ранее ис-
пользовался для записи знака порядка.
Типы и форматы операндов
Мантисса в числах с ПЗ обычно представляется в
нормализованной форме.
Это
означает, что на мантиссу налагаются такие условия, чтобы она по модулю была
меньше единицы
< 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-битовый формат числа с ПЗ. Старший (ле-
вый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах
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
—
отрицательное пере-
полнение;
Типы и форматы операндов 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