Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2024
Просмотров: 282
Скачиваний: 0
ширить, если вычисления с плавающей запятой производить в си стеме счисления с основанием не 2, a 2h (например, при &= 4, 24=16). В этом случае мантиссы чисел будут представляться шест надцатеричными цифрами, каждая из которых занимает, четыре двоичных разряда и может принимать значения от 0 до 15 (от О до F). Согласно (2.5) мантиссы нормализованных чисел теперь бу дут заключены в пределах Vie и 1 (0 ,0 0 0 1 0 ... 0 -т-0 ,1 1 1 1 1 ... 1). Ана логично (2 .6 ) диапазон представления таких чисел будет опреде ляться неравенством
16-1•16"(2'7” 1)< | A(16)| < ( l |
- 1 6 |
_ Т ) 162?_\ |
(2.7) |
что при <7= 6 составит |
|
|
|
1 6 - « < |А (16)|<1бе* |
|
|
|
или для десятичных чисел |
|
|
|
10-77 < | А(10)| < |
Ю76. |
|
|
При нормализации шестнадцатеричных мантисс однократный сдвиг производится сразу на четыре разряда. Это ускоряет выпол нение операций, так как уменьшается время, затрачиваемое на сдвиги, в частности, при нормализациях. Однако при оперировании с такими мантиссами несколько уменьшается точность представле ния чисел по сравнению со случаем, когда те же мантиссы рассмат
риваются двоичными. |
|
операции |
|
При естественной форме представления производятся |
|||
над числами, |
только |
меньшими или только большими |
единицы, |
т. е. запятая |
всегда |
фиксируется соответственно либо |
слева от |
старшего значащего разряда всех чисел, по абсолютной величине
меньших единицы, |
либо справа от младших цифр |
целых чисел. |
В обоих случаях |
имеет место представление, |
называющееся |
«с фиксированной запятой».
Если запятая зафиксирована слева, то арифметические действия выполняются над двоичными числами, выраженными в виде пра вильных дробей и независимо от их величины обычно представлен ными одинаковым количеством разрядов, составляющим так назы ваемую разрядную сетку машины. В результате действий могут по
лучаться |
двоичные числа, по абсолютной величине большие |
0 ,1 1 1 ... 11 |
или меньшие 0 ,0 0 0 . . . 0 1 (соответственно в десятичной |
системе 0,999... и 0,000...01). При данном представлении возник |
новение чисел, по абсолютной величине больших единицы или рав
ных единице, |
называется п е р е п о л н е н и е м р а з р я д н о й |
с е т к и . Без |
специальных мер коррекции такие результаты могут |
использоваться для дальнейших вычислений, поскольку теряются старшие значащие разряды чисел. Числа, по абсолютной величине меньшие единицы младшего разряда разрядной сетки, называются м а ш и н н ы м нулем.
38
Диапазон представления правильных двоичных дробей
2 -/< |Л (2)| < 1 - 2 - ‘) |
(2.8) |
где I — число цифровых разрядов правее запятой.
Этот диапазон значительно меньше, чем у чисел с плавающей запятой, имеющих такую же /-разрядную мантиссу. Тем не менее в первых ЦВМ широко использовалось представление чисел в виде правильных дробей с фиксированной запятой. При решении задач на таких машинах для предотвращения переполнения разрядной сетки приходится масштабировать величины, участвующие в вы числениях. В зависимости от сложности задачи процесс масштаби рования может быть весьма трудоемким.
Во многих задачах величины, которыми приходится оперировать при вычислениях, либо попросту являются целыми числами, либо их удобно в расчетах представлять целыми. Последнее имеет ме сто, когда определение порядка результатов несложно: диапазон изменения исходных величин сравнительно невелик, и над ними выполняются в основном операции сложения и вычитания. К та ким задачам, например, относятся учетно-плановые, статистиче ские и другие расчеты экономического характера. Адреса ячеек памяти также являются целыми числами, над которыми могут про изводиться арифметические операции.
Поэтому в современных универсальных машинах часто преду сматривается возможность выполнения действий над целыми числа ми. Такие действия могут выполняться как над двоичными числа ми, так и непосредственно над десятичными, представленными в двоично-десятичном коде. Целые числа при этом выравниваются по младшим разрядам (десятичные по младшим тетрадам), т. е. запятая подразумевается фиксированной справа.
Диапазон представления целых двоичных чисел в «-разрядной
сетке машины заключен в пределах |
|
|
0 < |А “2)|< 2 " - 1 . |
(2.9) |
|
Например, при « = 63 0 < | |
|< 2 СЗ — 1, что соответствует диа |
|
пазону чисел в десятичной системе 0 < | А(ц10)| < |
1010. |
При « того же порядка имеют достаточный для многих практи ческих задач диапазон представления и десятичные числа, разря ды которых кодируются двоичными тетрадами. В разрядной сетке, имеющей « двоичных позиций, можно разместить любое целое де сятичное число, записанное в двоично-десятичной форме:
П
0 < |Л “_10)|< 1 0 4 - 1 . |
(2.10) |
Например, при «=60 верхний предел ограничивается числом
1015— 1.
Непосредственное применение в ЦВМ десятичной арифметики особенно выгодно, когда производятся сравнительно несложные
39
вычисления над большими массивами исходных данных. В этих случаях может быть существенным выигрыш во времени, затрачи ваемом на вычисления, из-за отсутствия переводов чисел из деся тичной системы счисления в двоичную и обратно.
Особенность применения целочисленной арифметики состоит в том, что приходится иметь дело с числами различной разрядности (длины). При фиксировании запятой справа положение цифры старшего (левого) разряда зависит от величины числа. Следова тельно, при выполнении операций над целыми числами ограничи вать разрядность чисел слева, вообще говоря, нельзя. Поэтому для таких действий либо разрядная сетка машины выбирается с запа сом таким образом, чтобы обеспечивалась возможность размещения в ней любых чисел заданного диапазона, либо количество разря дов, отводимых на представление чисел, может быть переменным. Второй способ предпочтительнее, так как возможность гибкой ва риации разрядностью позволяет, например, более экономно расхо довать емкость запоминающих устройств, располагая значащие части чисел без пропусков, вплотную.
Будем понимать под элементарной ячейкой запоминающего устройства его часть, обеспечивающую запоминание значения одной двоичной цифры. Совокупность элементарных ячеек, отводимых для хранения чисел при операциях с переменной разрядностью, по
лучила название поля. |
Количество этих ячеек |
определяет |
дли |
|||
ну поля. |
Поэтому операции над целыми |
числами |
различной |
раз |
||
рядности |
называются |
о п е р а ц и я м и |
н а д |
п о л я м и п е р е |
||
м е н н о й |
длины. |
|
|
относятся не только |
||
Следует заметить, что к таким операциям |
арифметические и логические операции над целыми числами. В об щем случае операции над полями переменной длины широко при меняются для преобразования различной представленной в двоич ном алфавите смысловой информации, не имеющей количествен ного значения.
§ 2.3. Машинные коды чисел
Двоичные числа. Для кодирования знаков двоичных чисел ис пользуются дополнительно вводимые разряды, называемые знако выми, в которых знак «плюс» изображается цифрой 0 , а знак «ми нус»— цифрой 1.
Как при естественной, так и при полулогарифмической форме представления чисел код знака обычно располагается перед кодом числа слева. Если пронумеровать двоичные позиции разрядной сетки машины слева направо, начиная с нуля до п—1, то знаково му разряду будет соответствовать нулевая позиция.
При естественной форме представления чисел, по абсолютной величине меньших единицы, сразу за знаковым разрядом (вправо от запятой) следуют старшие разряды мантиссы. Например, двоич ные числа + 0,1101 и —0,0111 при закодированных знаках будут
40
иметь соответственно вид: 0.’ 1101 и 1,’ОШ * В 32-разрядной сетке машины второе число будет размещено, как показано на рис. 2.1, а.
Целое положительное двоичное число +10110111 при фиксиро вании запятой справа в той же разрядной сетке будет располагать ся, как изображено на рис. 2 .1, б.
Для полулогарифмической формы представления помимо раз ряда для изображения знака мантиссы необходим знаковый раз-
Знак
"П I I I I I I I I |
|
0 |
г |
а |
|
|
|
|
||||||||
1 |
0 |
1 1 1 |
0 |
0 |
|
0 |
|
0 |
|
|
|
|
|
|
||
0 |
1 1 I I |
1 I |
|
I |
|
I |
|
I |
|
I |
Рис. 2.1. Примеры машинных ко |
|||||
1 2 3 4 5 6 7 3 9 |
|
|
31 |
дов дробного (а) |
и целого (б) |
|||||||||||
Знак |
|
|
|
|
а |
|
|
|
|
|
чисел, |
представленных в естест |
||||
|
|
|
|
|
|
|
|
|
|
|
венной форме со знаками |
|
||||
т |
г т |
'I----------1 |
I |
|
I |
I |
|
'I |
"I Г |
I I |
|
|
|
|
||
0 |
О 0 • |
• * |
0 10 |
1 1 0 |
111 |
|
|
|
|
|||||||
—1,-1. I___ I |
I |
|
I |
|
I |
|
I |
I I |
I I |
|
|
|
|
|||
О 1 |
г |
23 24 25262728293031 |
|
|
|
|
||||||||||
ряд для изображения знака порядка. |
Например, |
двоичные числа |
||||||||||||||
+ 0,1011 |
10_ои и —0,1001 |
10+|01 |
в полулогарифмической |
форме с |
||||||||||||
закодированными знаками |
в общем случае будут |
иметь |
соответ |
|||||||||||||
ственно вид: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Знаки чисел (мантисс) |
|
Порядки |
Мантиссы |
||||||||||||
|
|
|
|
0. |
|
|
|
|
|
|
|
1 .0 1 1 ’ |
’1 0 1 1 |
|||
|
|
|
|
1. |
|
|
|
|
|
|
|
0 .1 0 1 ’ |
’10 0 1 |
|||
|
|
|
|
4 |
|
|
|
|
|
|
|
т |
|
|
|
|
|
|
|
|
\ |
|
|
|
|
|
|
|
|
|
|
Знаковые разряды
Для удобства выполнения операций над порядками они обычно кодируются не так, как показано в данном примере. Если для раз мещения кодов порядков р в разрядной сетке отводится <7 + 1 раз рядов, то отрицательные и положительные порядки представля ются увеличенными на 2«, т. е. р * = р + 2 ч . В результате порядки в диапазоне
— |
— 1 |
( 2. 11) |
оказываются выраженными в виде |
j |
j |
0 < / ? " < 27+1 — 1 |
(2.12) |
|
(на числовой оси смещенными на 2Чвправо). |
|
|
Предположим, что <7+ 1 = 7 . Тогда |
все порядки в диапазоне от |
|
—1000000 до +0111111 (—64=+63) |
в смещенном |
виде согласно |
* В дальнейшем тексте для упрощения чтения кодов чисел коды знаков от значащих частей отделяются точкой внизу, а место фиксирования запятой ука зывается вверху.
41