Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.04.2024
Просмотров: 201
Скачиваний: 0
Установим диапазон изменения чисел, представлен ных в этой разрядной сетке.
Поскольку для порядка р (включая его знак) отве дено семь разрядов, то порядок может быть любым це лым числом от —63 (1111111) до +63 (0111111).
Наибольшее и наименьшее нормализованные поло жительные числа в разрядной сетке (рис. 2-3, а) соответ ственно равны:
263• 0,111 • • • 1 = 2 63 (1 — 2~24)
и
2_63-0,100- ..0 = 2 -64.
Следовательно, с учетом знака q в разрядной сетке (рис. 2-3, а) можно представлять числа, лежащие в диа пазоне
о т — 263 (і — 2-24) до — 2~64 и от + 2_64до +
+ 263 (1 — 2-24),
что соответствует для абсолютных величин диапазону чисел примерно от 10~19 до ІО19.
Введем термин «нормализованный нуль». Так будем называть наименьшее по модулю число. Для разрядной сетки (рис. 2-3, а) нормализованным нулем являются оба числа —2~64 и + 2 ^64, двоичные коды которых име ют соответственно вид:
1 |
Ы |
1 |
1 |
1 |
1 |
11; |
1 |
|
0 |
. . . |
О |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 ' |
1 |
0 |
••• |
0 |
“о |
Ро |
Рі |
РгРз |
Р4 |
Ps |
Ре |
аі |
а 2*‘ ‘ °-24- |
Число, содержащее во всех разрядах сетки нули,т. е. имеющее положительную нулевую мантиссу и положи тельный нулевой порядок, называется «истинным нулем».
При фиксированном количестве разрядов мантиссы любая величина представляется в машине с наибольшей возможной точностью нормализованным числом. В про цессе вычислений может получаться ненормализованное число. В этом случае машина с плавающей запятой авто матически нормализует его («нормализация результата» операции).
Пусть г старших разрядов мантиссы равны нулю. Тогда нормализация заключается в сдвиге мантиссы на
63
г разрядов влево и уменьшении порядка на г единиц. При этом в младшие г разрядов мантиссы записывают ся нули. После такой операции величина числа не меня ется, а условие (2-7) выполняется.
Например, ненормализованное число
л: = 23 (— 0,00001010- --0)
после нормализации примет вид:
X — 2—1(— 0,1010---0).
При выполнении некоторых команд операция норма лизации блокируется и получаемый результат операции не подвергается нормализации.
В случае нулевой мантиссы нормализации невозмож на и она не производится.
Диапазон представляемых чисел зависит от основа ния характеристики и числа разрядов, выделенных для изображения порядка. Точность вычислений определяет ся числом разрядов мантиссы.
Задачи, решаемые на ЦВМ, предъявляют различные требования в отношении точности вычислений. Поэтому во многих ЦВМ для представления чисел с плавающей запятой наряду с форматом, соответствующим машинно му слову, как это было принято нами на рис. 2-3, а, пре дусматривается также формат двойной длины, занима ющий два машинных слова (представление с удвоенной точностью). Пример такого формата показан на рис. 2- 3, б. В формате двойной длины обычно не меняется ко личество разрядов для изображения порядка и, следова тельно, сохраняется диапазон представляемых чисел, а длина мантиссы увеличивается (в нашем примере — до 56 разрядов).
Формат двойной длины для чисел с плавающей запя той позволяет проводить вычисления с повышенной точ ностью. Однако при использовании этого формата увели чиваются время выполнения операций в ЦВМ и объем памяти, необходимый для хранения данных.
Выше было рассмотрено представление нормализо ванных чисел с плавающей запятой в форме
X = 2Р q, где 1 > \q\ >
В некоторых вычислительных машинах получило рас пространение представление чисел с плавающей запятой
64
с основанием характеристики, равным целой степени числа два (S = 2W)
x = S pg( 1 > |? | > -£ -], |
(2-8) |
например, |
|
х = 8р ^ 1 > м > у ) ; |
(2-9) |
X = 16р <7^1 > \q\ > |
(2-10) |
В скобках указаны соответствующие условия полу |
|
чения нормализованных чисел. |
запятой не |
Использование для чисел с плавающей |
двоичного основания характеристики несколько умень шает точность вычислений (при заданном числе разря дов мантиссы), но позволяет увеличить диапазон пред ставляемых в машине чисел и ускорить выполнение некоторых операций, в частности нормализации, за счет того, что сдвиг может производиться сразу на несколько разрядов [по четыре разряда для случая (2-10)]. Кроме того, уменьшается вероятность появления ненормализо ванных чисел в ходе вычислений.
Будем для определенности рассматривать числа с плавающей запятой вида
х = 16Р <7.
Пусть по-прежнему формат числа с плавающей запя той имеет вид, изображенный на рис. 2-3, а. Хотя в ЦВМ мантисса числа фактически представляется двоичным числом
24
Я = üai2~‘(а,= 0,1),
!=і
при излагаемом способе представления чисел удобнее рассматривать мантиссу как число, составленное из ше стнадцатиричных (двоично-кодированных) цифр в виде
q = 2 а г 16- / (а, = 0, 1,2....... |
F). |
/ = і
Число X -считается нормализованным, если старшая шестнадцатиричная цифра <Ji отлична от нуля. В рас-
5—333 |
65 |
сматриваемом случае в нормализованном числе три стар шие двоичные цифры а ь а 2, а 3 могут равняться нулю. Это несколько уменьшает точность представления чисел при фиксированном числе разрядов мантиссы.
Если г старших шестнадцатиричных разрядов ман тиссы равны нулю, то нормализация в этом случае со-- стоит в сдвиге влево мантиссы на г шестнадцатиричных разрядов и соответствующем уменьшении порядка на г единиц.
Сдвиг на одну шестнадцатиричную цифру обычно вы полняется как одновременный сдвиг мантиссы на четыре двоичных разряда. При этом в крайние справа четыре двоичных разряда записываются нули.
Используя формат данных, изображенный на рис. 2- 3,а, и форму представления чисел (2-10), получаем сле дующий диапазон для нормализованных чисел:
от — 1 б63 (1 — 16-6) до — 16“ 64и от
+ 16-64 до + 1663 (1 — 16_6),
что соответствует для модулей чисел диапазону пример но от ІО-77 до ІО76.
Как видно, форма (2-10) позволяет получить значи тельно больший диапазон чисел, чем форма (2-6).
Рассмотрим правила выполнения арифметических операций над числами с плавающей запятой для общего случая основания характеристики S.
Пусть имеется два нормализованных числа: |
|
||
x1 = Sp'-q1 и х2 = SPz■q2. |
|
||
Сложение и вычитание чисел |
производятся |
по фор |
|
муле (полагаем, что х \> х 2) |
|
|
|
хі ± х2 — Sp'-q1 ± SPz-q2 = S Pl {q1± q 2-S (Pl |
Рг)). |
||
Умножение и деление выполняются в соответствии с |
|||
формулами: |
|
|
|
хі Х2 = SPl-q ^S Plq2 = |
Sp,+p‘-(ql q2y, |
|
|
xi |
— ^Р' *9i _ gPi—Pi _£i_ |
|
|
*7 |
S p* . q 2 |
Яі ‘ |
|
Приведенным формулам соответствуют следующие процедуры, автоматически выполняемые в.ЦВМ. При сложении и вычитании чисел в машинах с плавающей
66
запятой предварительно производится выравнивание по рядков чисел. Для этого порядок меньшего числа прини мается равным порядку большего числа, а мантисса меньшего числа сдвигается вправо на число 5-ичных разрядов, равное разности порядков чисел '. Затем про изводится сложение (вычитание) мантисс, в результате чего получается мантисса суммы (разности). Порядок суммы (разности) принимается равным порядку боль шего числа. В заключение операции полученная сумма (разность) нормализуется. При умножении мантиссы чисел перемножаются, а порядки складываются. При делении мантисса частного равна частному от деления мантиссы делимого на мантиссу делителя, а порядок частного — разности порядков делимого и делителя. По лученное произведение (частное) приводится к нормали зованному виду. Знак результата определяется знаком произведения (частного) мантисс чисел, участвующих в операции.
Описанные процедуры завершаются приведением к нормализованной форме, так как сложение, вычитание, умножение и деление нормализованных чисел могут иметь результатом ненормализованное число. Нормали зация может нарушаться как влево (мантисса результа та больше 1), так и вправо (мантисса результата мень ше 1/5).
Нарушение нормализации влево, причем не более чем на один двоичный разряд, возможно при алгебраи ческом сложении и один 5-ичный разряд при делении нормализованных чисел. Нарушение нормализации впра во возможно не более чем на один 5-ичный разряд при перемножении нормализованных чисел и на произ вольное число 5-ичных разрядов при алгебраическом сложении.
При использовании чисел с плавающей запятой ариф метическое устройство помимо аппаратуры, выполняю щей операции над мантиссами, должно иметь аппарату ру для операций над порядками и для вспомогательных операций (выравнивание порядков, нормализация и др.).
Для упрощения операций |
над порядками их сводят |
||
к действиям над целыми |
положительными числами, ис |
||
пользуя |
представление чисел |
с плавающей запятой со |
|
! Если |
S—2W, то мантисса |
сдвигается на |ш(рі—р2) ( двоич |
|
ных разрядов. |
|
|
|
5* |
|
|
67 |
«смещенным порядком». В машинах ЕС ЭВМ при записи числа в память к его порядку р прибавляется положи тельное целое число — смещение N. При этом
N = 1“Ь ІРмаксІ-
Смещенный порядок p '— p-\-N всегда положителен. Для его представления нужно такое же количество раз
рядов, как для модуля и знака порядка р. |
рис. 2-3, сме |
|||||||
|
Для |
разрядной |
сетки, |
|
показанной на |
|||
щение |
ІѴ= 64. Для |
хранения смещенного |
порядка р '= |
|||||
= |
р+64 выделим разряды |
ß0, ßi, ... ß6При этом р' бу |
||||||
дет принимать значения от //= 1 2 7 |
(при р — 63) до р '= |
|||||||
= |
0 (при |
р = —64). В табл. 2-2 для рассматриваемого |
||||||
Десятичное |
Эквивалентное |
|
|
|
Таблица 2-2 |
|||
|
ПредставлениечиславпамятиЦВМ |
|||||||
шестнадцати |
|
|||||||
|
число |
ричноечисло |
0 |
1000100 |
001111111010000100000000 |
|||
|
16 289 |
0 ,3 / м і.(1 0 )}6 |
||||||
|
0,01 |
|
0.28F5C3 |
0 |
0111111 |
(44 3/ѴІ100) |
||
|
|
001010001111010111000011 |
||||||
|
— 0,01 |
—0.28F5C3 |
1 |
0111111 |
((3FB F 28F5C3) |
|||
|
001010001111010111000011 |
|||||||
|
— 16 289 |
— 0,3Fi41-(10)?6 |
1 |
1000100 |
28F5C3) |
|||
|
001111111010000100000000 |
|||||||
|
|
|
|
|
|
|
(С4 3F4100) |
случая приведены примеры представления чисел с пла вающей запятой (в формате слова) в памяти машины. Следует обратить внимание на то, что при изображении кода числа в памяти шестнадцатиричными числами пер вые две старшие цифры представляют знак числа и сме щенный порядок.
2-4. П Р Я М О Й , О Б Р А Т Н Ы Й И Д О П О Л Н И Т Е Л Ь Н Ы Й К О Д Ы
При проектировании вычислительных устройств не обходимо решить вопрос о способе представления в ма шине положительных и отрицательных чисел и о призна ке переполнения разрядной сетки (см. § 2-3). Указан ный вопрос решается применением специальных кодов для представления чисел. При помощи этих кодов опе рация вычитания (или алгебраического сложения) сво
68