Файл: Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.07.2024
Просмотров: 86
Скачиваний: 1
Определим границы диапазона чисел, с которыми может опери
ровать ЦВМ с разрядной сеткой, изображенной на рис. |
1. |
||||||
Максимальное положительное число, |
которое |
можно |
записать |
||||
в машине, равно |
|
|
|
|
|
|
|
1 |
...........1 , 1 1 |
. . . . |
1 = |
10 |
. . . . 0 |
, |
|
|
т цифр |
п цифр |
|
|
( т + 1) цифр |
|
|
0 |
...........0 —0, |
О . . . . |
01 |
= |
2т—■2~п. |
|
|
|
п цифр |
л цифр |
|
|
|
|
Минимальное положительное число, которое можно изобразить, равно
0 . . . . 00 , 00 . . . 01 = 2~п.
т цифр |
п цифр |
|
Общий диапазон чисел равен |
|
|
2-,!< | М | < 2 т —2~п. |
(2.1) |
Разрядная сетка ЦВМ с фиксированной запятой с четырьмя раз рядами для хранения целой части и двенадцатью разрядами для хранения дробной части приведена на рис. 2.
|
Знак |
Целая |
часть |
|
, |
|
|
Дробная |
часть |
|
|
|
|||||
Номера |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
разрядов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2
Диапазон чисел, с которыми может оперировать ЦВМ, со гласно (2.1) будет равен
2_,2< | М | < 2 4— 2~12,
0,00024 < | N | < 16— 0,00024.
Пример 1. Записать в ячейке, приведенной на рис. 2, десятичное число -4- 15, 136:
+ 15, 13610= + 1111, 001 000 101 101.
Запись данного двоичного числа в ячейке памяти приведена на рис. 3.
0 0 1 0 0 0 1 0 1 1 0 1
Рис. 3
Пример 2. Записать в ячейке приведенное на рис. 2 десятичное число — 11,0941о:
— 11,094 = — 1011, 000 НО 000 001.
27
Запись данного двоичного числа в ячейке памяти приведена на рис. 4.
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Рис. 4
При выполнении арифметических операций результат вычисле ния не должен превышать по абсолютной величине максимального числа, которое может быть представлено машиной. В противном случае переполняется разрядная сетка и результат искажается. Например, при умножении в ЦВМ двух чисел
N i = |
12 — = 1100,001, |
|
8 |
М2= |
5 =0101,000, |
N 1-Ni = 1100,001 • 0101,000 = 111100,101.
Поскольку для целой части отведено только четыре разряда, два старших разряда будут потеряны, а результат искажен. Поэ тому в машинах с фиксированной запятой все величины, участвую щие в вычислениях, необходимо заранее умножать на масштабные коэффициенты, величина которых должна быть подобрана с таким расчетом, чтобы в процессе решения задачи никакие арифметиче ские операции не вызывали переполнения.
Для облегчения подбора масштабных коэффициентов запятая
обычно фиксируется перед |
старшим |
цифровым разрядом числа, |
т. е. сразу после знакового |
разряда |
[рис. 5]. При этом все числа |
в машине будут по модулю меньше единицы, т. е. правильными дро бями. Фиксация запятой перед старшим разрядом удобна тем, что при умножении двух чисел произведение всегда будет меньше еди ницы и, следовательно, не выйдет за пределы разрядной сетки. Диа пазон чисел в таких машинах сравнительно невелик. Если для дробной части отведено п разрядов, то
2 ~ " < |М |< 1 - 2 “ "
|
Знак |
|
|
Дробная |
часть |
|
|
Номера |
0 |
1 |
.2 |
3 |
4 |
5 |
п |
разрядов |
|
|
|
|
|
|
|
Веса |
— |
2—1 |
2—2 |
2 - 3 |
2- 4 |
2“ 5 |
2-п |
разрядов |
|
|
|
|
|
|
|
|
|
|
Рис. |
5 |
|
|
|
28
Нормальная форма представления чисел
При нормальной форме представления чисел любое число N за писывается в виде произведения двух сомножителей
N = N g\0p,
где 10 — основание системы, р — порядок чисел,
АД — мантисса числа, удовлетворяющая условию 0<Д ЛД| < 4 . Например,
АД = 18,37410 = 0,18374 • 102,
М2 = 0,0005751п = 0,575 • Ю- 3 ,
7V3 = — 10111,0012 = — 0,10111001 • Ю101,
Л74 = 0,001 112 = 0,111 • 10_1°.
Как видно, запись числа в нормальной форме не определяется однозначно, поскольку справедливы и другие записи
7VX= 18,37410 = 0,018374-103,
АД = 0,0005751о = 0,0575-10“ 2,
АД = — 10111,0012 = —0,010111001 • Ю110,
yv4 = 0,001112 = 0,0111-10_1.
Если в старшем разряде (после запятой) мантиссы АД стоит зна чащая цифра, т. е. цифра, отличная от нуля, то число N называют нормализованным. В этом случае запись числа в нормальной форме определяется однозначно. Мантисса нормализованного числа должна удовлетворять условию
где 10 — основание системы. Для двоичной системы
Y < l ^ o | < l - |
(2.2) |
Для десятичной системы
0,1 С | А70)< 1 . |
(2.3) |
Если условие (2.1) не выполняется, числа называют ненорма лизованными. Числа — 0,1239-102; 0,999-10~3; — 0,1000001 • 10+ш
0,11111111 • 10~100 являются нормализованными, поскольку они удовлетворяют условию (2.1). Числа 0,0137• 103; — 0,0101111110п °,
0,00011 • 10 011 являются ненормализованными, поскольку они не удовлетворяют условию (2.1). Все арифметические действия в ма шинах, как правило, выполняются только над нормализованными числами.
29
Нормализация |
чисел в машине производится |
автоматически |
в ходе вычислений, |
либо по специальным командам. |
Нормализация |
заключается в том, что мантиссу ненормализованного числа сдви гают влево на столько разрядов, сколько нулей в мантиссе до пер вой значащей цифры, в результате чего первая значащая цифра запишется в старший цифровой разряд. Одновременно от порядка числа отнимают число, равное количеству произведенных сдвигов.
Например, ненормализованное число
= 0,00000011111 ПО010.
110нулей
врезультате нормализации будет иметь вид
= 0, 11111■ 10°1(>- ио - 0,1 1111•ю -100.
Как видно из примеров, порядок числа, записанного в нормаль ной форме, показывает положение запятой, если число N изобра жается набором цифр дробной части числа.
Положительный порядок показывает номер того разряда ман тиссы, после которой в записи числа стоит запятая.
Например, в числе 0,1110 111-10110 порядок р == ПО (610), поэ тому
0 ,11Ю 11Ы011011.1011,1 .
ПО цифр
Отрицательный порядок показывает количество нулей между запятой и старшим цифровым разрядом мантиссы
Например, в числе 0,10101111- Ю~101 порядок р — — 101 (— 510),
поэтому
0,10101111 - Ю~101 = 0,0000010101111 .
101 нулей
В зависимости от величины порядка будет меняться и положе ние запятой, поэтому ЦВМ с нормальной формой представления чисел называют машинами с плавающей запятой. Разрядная сетка или ячейка памяти ЦВМ с плавающей запятой приведена на рис. 6.
Знак числа |
|
Мантисса |
|
|
Указатель |
положения |
запятой |
Номера |
0 |
4 |
п— |
п |
п + 2 |
п + 3 |
п-\-т |
разрядов |
|
|
|
|
|
|
|
|
|
|
|
АI |
Порядок |
|
|
|
|
|
Знак |
|
|||
|
|
|
порядка |
|
|
|
|
|
|
|
Рис. |
6 |
|
|
|
30
Знаковые разряды мантиссы и порядка изображаются так же, как и в машинах с фиксированной запятой. Положительный знак изображается цифрой 0, отрицательный— цифрой 1. Знак ман тиссы определяет знак всего числа.
На рис. 6 для изображения абсолютной величины мантиссы отведено (п—1) разрядов, для изображения абсолютной величины порядка — т разрядов. Подсчитаем границы диапазона чисел, с которыми может оперировать ЦВМ с плавающей запятой. Макси мальное положительное число, которое можно записать в машине, будет равно
|
|
т цифр |
|
|
|
0,11 |
. . . |
1 Ы 0 1Т_:_'1= [ 1 - 2 - (л“ 1)]-22т~ '. |
(2.4) |
||
л—1 цифр |
|
|
|
||
Минимальное нормализованное число, представимое в машине, |
|||||
будет |
|
т цифр |
|
|
|
|
|
|
|
|
|
0,100 |
. . . |
0 .ю 'ГТГ:^ |
= 2 - 1.2 - 2т+1 = 1Г2'П. |
|
|
Общий диапазон чисел, представимых в машинах с плавающей |
|||||
запятой в разрядной |
сетке (рис. 6), характеризуется неравенством |
||||
|
2 - 2m< | M | < [1—2 ~ {п~ 1)] 22'" - 1. |
(2.5) |
|||
В современных вычислительных машинах для изображения по |
|||||
рядка используется от 6 и более разрядов, |
а для изображения ман |
||||
тиссы от 30 и более разрядов. |
машину |
с плавающей |
запятой, |
||
Рассмотрим |
вычислительную |
у которой п—1 — 12, т — 4. Разрядная сетка такой ЦВМ приве дена на рис-. 7.
|
|
|
Указатель |
|
|
Мантисса |
положения |
запятой |
|
Номера |
0 |
10 Н 121 13 |
14 15 |
16 17 |
разрядов |
|
|
|
|
|
t |
А ________ ____ |
||
|
Знак |
Порядок |
||
|
Знак |
|||
мантиссы |
порядка |
|
|
|
(число) |
7 |
|
|
|
|
Рис. |
|
|
Диапазон чисел, с которыми может оперировать УВМ с плаваю щей запятой, равен
2 - 24< | i V | < ( l - 2 - 12).2 24- \ 2~16< | М |< (1—2_12)-215,
0,00002 < | N | < (1 — 0,00024) 32768.
31