Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.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