книги из ГПНТБ / Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие
.pdfПеревод чисел из десятичной системы в восьмеричную
Пользуясь общим алгоритмом перевода, изложенным ранее, переведем несколько десятичных чисел в восьмеричные:
Пример 16. Перевести десятичное число 999,14257812510 в вось меричное. Переводим отдельно целую и дробную части.
999 |
|8_ |
|
|
|
0, |
142578125 |
8 |
124 |
|
18 |
|
|
X 8 |
|
|
1, |
140625000 |
|||
19 |
8_ |
15 |
| 8 |
|||
16 |
44 |
|
8 |
1 |
|
X 8 |
|
1, |
125000000 |
||||
39 |
40 |
|
7 |
|
||
|
|
|
X 8 |
|||
32 |
4 |
|
|
|
|
|
|
|
|
1, |
000000000 |
||
7 |
|
|
|
|
||
|
|
|
|
|
|
|
99910 = |
17478 |
|
|
|
0,14257812510 = 0,1118 |
|
999,14257812510 = |
1747, |
1118 |
• 83 + 7 • 82 + |
4 • 81 + 7 • 8° + |
||
|
+ |
1 • 8-1 + 1 • 8-2 + |
1 • 8 3 = 512 + 448 + 32 + 7 + |
|||
|
+ — + — + — = 999 — = 999,142578125J0. |
|||||
|
|
8 |
64 |
512 |
512 |
|
Пример 17. Перевести десятичное число 219,20312510 в восьме ричное
219 |
I8 |
|
1 |
0, |
203125 |
16 |
|
|
|
X 8 |
|
й |
1 8 |
|
|
||
|
|
625000 |
|||
59 |
|
1, |
|||
24 |
3 |
|
|||
56 |
3 |
|
|
X 8 |
|
|
|
5, |
000000 |
||
3 |
|
|
|
2Ю10
II
со СО СО СО
0, 20312510 = 0,158
219,2031251О= 333,158 —3 • 82 + |
3 • 81+ 3 • 8°+ |
1-8- 1 + 5 - 8 ~ 2 = |
= 192 + 24 + 3 + - |
219 _13_ :219,203125i o - |
|
|
64 |
64 |
Перевод из восьмеричной системы счисления в двоичную и обратно
Основание восьмеричной системы является целой степенью осно вания двоичной системы (8 = 23). В подобных системах счисления перевод чисел из одной системы в другую очень прост.
20
Пусть дано целое восьмеричное число N
N = ап8п+ ал—18"“ ' |
. . . + 0^8 +^o8j — a.g*. (1.24) |
|
i= 0 |
Преобразовать число N в двоичную систему, значит представить его в виде
N' = b f - V b k_ x2h- 1 |
k |
b12J + 602° = 2 Ъ 2\ (1.25) |
|
|
1=0 |
По условию N --- N ' . Разделив М и ./V1 на 8 = 23, получим оди наковые остатки и частные
а0 = Ь222 + Ь£! + |
Ь02° = Ьфф0, |
(1.26) |
||||
|
2 |
^ 8 '- ‘ = |
2 |
Ъ р - \ |
(1.27) |
|
|
f = l |
|
г=3 |
|
|
|
Разделив обе части |
равенства |
(1.27)на |
8 = 23, |
получим опять |
||
одинаковые остатки и частные |
|
|
|
|
||
fli = |
Ьь2г+ 6421 + |
Ь32° = |
Ьффз, |
|
||
|
2 |
afil~2 = i |
|
|
(1.28) |
|
|
i—2 |
|
1=6 |
|
|
|
Из равенств (1.26) |
и (1.28) нетрудно понять, |
что для перевода |
восьмеричного числа в двоичную систему нужно каждую восьме ричную цифру заменить равным ей трехзначным двоичным числом. Данное правило справедливо и для перевода дробей.
Пример 18. Перевести восьмеричное число 754,363 в двоичное
754,3638 = 111 101 100,011 110 0112.
Для перевода двоичных чисел в восьмеричные необходимо дво ичное число разбить на триады влево и вправо от запятой, и каждую триаду заменить восьмеричной цифрой. Если правая и левая группы цифр не будут полными триадами, их дополняют справа и слева нулями.
Пример 19. Перевести двоичное число 11111101101, 101112 в вось меричное.
Слева и справа разбиваем двоичные цифры на триады
011.111.101.101, 101.1102 = 3755,568.
Восьмеричная система счисления в ЦВМ используется для со кращенной записи двоичных чисел при программировании: для записи адресов команд, кодов операции, адресов чисел, исходных данных.
Как промежуточная, восьмеричная система используется для перевода десятичных чисел в двоичные и обратно. Вначале десятич ное число переводят в восьмеричное, а затем уже переходят к дво ичному изображению.
Пример 20. Перевести десятичное число 641,414062510 в двоич ное.
21
Перевод числа в восьмеричную систему: |
|
||||
641 |
II |
|
0, |
4140625 |
|
640 |
80 |
II |
|
X 8 |
|
3, |
3125000 |
||||
|
'80 |
||||
1 |
1 0 |
||||
|
0 |
8 |
|
X 8 |
|
|
2, |
5000000 |
|||
|
|
|
|||
|
|
|
|
X 8 |
|
|
1201. |
|
4, |
0000000 |
|
641хо |
|
0,414062510 = 0,3248 |
|||
|
641,414062510= |
1201,324„. |
|
||
Теперь каждую восьмеричную цифру заменяем |
двоичной триадой |
||||
641,414062510 = 001010000001,0110101002 = |
|||||
|
= |
1010000001,0110101. |
|
Перевод в десятичную систему счисления
Рассмотрим два метода перевода чисел из любой системы счис ления в десятичную:
а) метод последовательного деления на десять, б) метод суммирования степеней основания.
Пример 21. Перевести восьмеричное число 3078 в десятичное методом последовательного деления на Ю10
3078 |
|12в |
|
12 |
24 |
23 |
1 |
|
47 |
12 |
|
1 |
36Не
П8
|
1^8 — |
|
|
3078 = 19910 |
|
Пример 22. |
Перевести двоичное число 1110111, 112 в десятичное |
|
методом суммирования степеней двойки. |
|
|
1110111,112 = |
1-26+ Ь 2 5+ 1-24 + 0-23+ 1-22+ Ь 2 г+ 1-2° + |
|
+ 1-2-1 + 1-2-2 = 6 4 + 3 2 + 16 + 4 + 2 + 1 + — + — = |
||
|
2 |
4 |
= |
119 — = 119,7510. |
|
|
4 |
|
Пример 23. Перевести двоичное число 1101 001 1001112 в деся тичное.
22
Переведем предварительно двоичное число в восьмеричное
001.101.001.100.111,= 151478 = Ь 84 + 5 - 83+ 1-8а + 4-81 + 7-8° =
= 4096 + 2560 + 64 +'32 + 7 = 676110.
§ 5. НЕПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ
Непозиционными системами счисления называются такие си стемы счисления, в которых каждая цифра сохраняет свое значение независимо от места ее положения в числе. Примером непозицион ных систем может служить известная нам римская система счисле ния и система счисления в остаточных классах.
Система |
счисления |
в остаточных классах |
|
|
||||||
|
Пусть нам задан ряд взаимно простых целых положительных |
|||||||||
чисел pj, |
р 2, р3...........р„. |
|
|
|
|
|
|
|
||
|
Под системой счисления в остаточных классах понимают такую |
|||||||||
систему, |
в которой |
целое |
положительное число |
представляется |
||||||
в виде набора наименьших остатков от деления на числа |
р х, р 2, |
|||||||||
Рз< ■■■Рп |
N = (ап, |
|
|
|
|
|
(1.29) |
|||
|
|
|
. . . |
а 3, |
а 2, |
а ^ , |
|
|||
где |
|
|
|
|
|
|
|
|
|
|
|
|
а . ■N- |
■jv_ |
■Pt |
для |
i = |
1, |
2, 3, |
п, |
(1.30) |
|
|
|
pi |
|
|
|
|
|
|
|
т. |
е. цифра ctt есть наименьший положительный остаток от деления |
|||||||||
N |
на pt. |
|
|
|
|
|
|
|
|
|
|
В отличие от позиционной системы, образование каждого раз |
|||||||||
ряда происходит независимо |
друг от |
друга. Цифра г-разряда а £- |
представляет собой наименьший положительный остаток от деления самого числа N, а не предыдущего частного, как в позиционных системах.
В теории чисел доказано, что если р, взаимно простые числа, то описанное цифрами ап, . . . а 3, а 2, а 1 представление числа N является единственным. Диапазон представленных чисел равен
P = P i X p 2 X P s X |
. . . X Рп- |
(1.31) |
Если в качестве оснований выберем взаимно простые числа |
||
Р/ = 2, 3, 5, |
7, |
(1.32) |
то диапазон представляемых чисел равен |
|
|
P = 2-3-5-7 = 210. |
(1.33) |
23
Возьмем десятичное число N = 5010, лежащее в заданном диа пазоне (0, 210) и переведем его в систему остаточных классов
|
а х= 50— |
g |
2 — 50— 25-2 = 0, |
|
|
|
|
|||||||
|
(О |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а 2 = 50 —Г 50 3 = 5 0 -1 6 -3 = 2, |
|
|
|
|
|||||||||
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
Wя 1! СЛ0 1 |
Г 5° 1 5 = 5 0 -1 0 -5 = 0, |
|
|
|
|
||||||||
|
|
|
|
|
_ 5 _ |
|
|
|
|
|
|
|
|
|
|
1S |
II |
СЛ о |
|
5 0 ] |
7 = 5 0 - 7 - 7 = 1. |
|
|
|
|
||||
|
|
7 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
N = |
5010 = |
N (а4, |
а 3) |
а 2, |
|
0, 2, |
0) |
|
|
||||
Пользуясь |
соотношениями |
(1.29) — (1.33), |
составим |
таблицу |
||||||||||
десятичных чисел, |
выраженных |
в |
системе |
остаточных |
классов |
|||||||||
(табл. 1-4). |
|
|
|
|
|
|
|
|
|
|
|
|
|
1-5 |
|
|
|
|
|
|
|
|
|
|
Т а |
б |
л и |
ц а |
|
Десятичное |
Число в системе |
|
|
Десятичное |
Число в системе |
|
||||||||
число |
остаточных классов |
|
|
число |
|
остаточных классов |
||||||||
1 |
(1. |
1, |
1, |
1) |
|
|
30 |
|
(2, |
0, |
0, |
0) |
|
|
2 |
(2, |
2, |
2, |
0) |
|
|
60 |
|
(4, 0, о, 0) |
|
||||
3 |
(3, |
3, |
0, |
1) |
|
|
70 |
|
(0, |
0, |
1, |
0) |
|
|
4 |
(4, |
4, |
1, |
0) |
|
|
105 |
|
(0, |
0, |
0, |
1) |
|
|
5 |
(5, |
0, |
2, |
1) |
|
|
120 |
|
(Е 0, 0, 0) |
|
||||
6 |
(6, |
1, |
0, |
0) |
|
|
160 |
|
(6, |
0, |
1, |
0) |
|
|
7 |
(0, |
2, |
1, |
1) |
|
|
180 |
|
(5, |
0, |
0, |
0) |
|
|
8 |
(1. |
3, |
2, |
2) |
|
|
200 |
|
(4, |
0, |
2, |
0) |
|
|
9 |
(2, |
4, |
0, |
1) |
|
|
210 |
|
(0, |
0, |
0, |
0) |
|
|
10 |
(3, |
0, |
1, |
0) |
|
|
|
|
|
|
|
|
|
|
15 |
(Е |
0, |
0, |
1) |
|
|
|
|
|
|
|
|
|
|
20 |
(6, |
0, |
2, |
0) |
|
|
|
|
|
|
|
|
|
|
Рассмотрим правила сложения и умножения в системе остаточ |
||||||||||||||
ных классов. |
|
|
|
|
|
vl В |
представлены соответственно |
|||||||
Пусть операнды (числа) A |
||||||||||||||
остатками осг- и (5,- по основаниям рг при i |
1, |
2, 3, . . . |
п. |
В |
|
|||||||||
Если результаты |
|
операций |
сложения и |
умножения |
А |
и |
А В представлены соответственно остатками уг и 8г, то справедливы следующие соотношения (доказательство приводить не будем):
yi = |
<*i+ $t (mod pt) |
s/ = |
arPi(mod р,-), |
т. е. сложение и умножение являются поразрядными операциями. При этом в качестве цифры результата берется соответственно:
V; = «г + Р,- — Щ~Г Pi ■P i- |
(1.34) |
Pi |
|
24
8,. = а ..р .— ~а>РГ Pi- |
|
|
|
|
(1.35) |
|||||
|
|
|
. Pt . |
|
|
|
|
|
|
|
Пример 24. Сложить число А |
10 и число В |
20. По таблице |
||||||||
1-4 находим |
|
|
|
|
|
|
|
|
|
|
Л = |
10= (3, |
0, |
1, 0) |
|
|
|
|
|
||
В = |
20 = |
(б, |
0, |
2, |
0). |
|
|
|
|
|
Согласно (1.34) получим |
|
|
|
|
|
|
|
|
|
|
а4 = 3 + 6 — |
3 + 6 7 = 2, |
|
|
|
|
|||||
|
|
|
7 |
|
|
|
|
|
|
|
а 3 = 0 + 0— 0 + 0 5 = 0, |
|
|
|
|
||||||
ct2 — 1 + 2 — |
1 + 2 - 3 = |
0, |
|
|
|
|
||||
|
|
|
3 |
|
|
|
|
|
|
|
а1==0 + 0— |
0 + 0 |
2 = |
0 . |
|
|
|
|
|||
|
|
|
2 |
|
|
|
|
|
|
|
По таблице проверяем, что число (2, 0, 0, 0) есть 30 и равно сумме |
||||||||||
операндов. |
|
|
|
|
|
|
|
|
|
|
Пример 25. Умножить два числа |
А = 7, |
5 = |
15. |
По |
таблице |
|||||
1-4 находим. |
|
|
|
|
|
|
|
|
|
|
Л = |
7 = |
(0, |
2, |
1, |
1), |
|
|
|
|
|
В = |
15 = |
(1, |
0, |
0, |
1). |
|
|
|
|
|
В соответствии с (1.35) получим |
|
|
|
|
|
|
|
|||
ЛВ = (0, 0, 0, 1). |
|
|
|
|
|
|||||
По таблице проверяем, что число |
(0, |
0, |
0, |
1) есть |
105 |
и равно |
||||
произведению операндов. |
|
|
|
|
|
|
|
|
|
|
Как видим из примеров, сложение и умножение являются по разрядными операциями, что позволяет получить очень высокое быстродействие. К недостаткам данной системы следует отнести не возможность визуального сопоставления чисел и ограниченность действия системы сферой целых положительных чисел. В настоящее время в СССР построена ЭВМ в системе остаточных классов, однако принципы построения таких ЭВМ в настоящем пособии рассматри ваться не будут.
Как уже указывалось выше, в дальнейшем будут рассматри ваться арифметические основы электронных цифровых вычисли тельных машин, в которых в качестве основной используется дво ичная система счисления.
Глава вторая
П РЕД С ТАВЛ ЕН И Е ЧИСЕЛ В Ц И Ф Р О В Ы Х М А Ш И Н А Х
§ 1. ФОРМЫ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ В МАШИНАХ
Как и при ручном счете, для представления чисел в ЦВМ при меняются две формы: естественная и нормальная.
В зависимости от способа представления чисел ЦВМ делятся на машины с фиксированной запятой, где применяется естествен ная форма записи чисел, и машины с плавающей запятой, где при меняется нормальная форма записи.
Естественная форма записи чисел
При естественной форме записи числа представляются в виде последовательности цифр, разделенных запятой на целую и дроб
ную части. |
|
|
|
Например, числа 18,374; 399,054, 1111,00011; |
10111, 1101111; |
||
101, |
10001 |
записаны в естественной форме. |
|
В |
ЦВМ, |
где применяется естественная форма |
представления |
чисел, положение запятой жестко фиксируется после определен ного разряда и остается неизменным для всех чисел, с которыми оперирует вычислительная машина.
Разрядная сетка или ячейка памяти такой машины состоит из знакового разряда и цифровых разрядов, часть из которых отве дена для записи целой части, остальные отведены для записи дроб
ной части |
числа. |
|
|
|
|
|
Знак |
Целая часть |
• |
Дробная часть |
|
|
|
|
|
|
|
Номера |
0 |
1 2 . . . т |
|
т 1 т + 2 /72 - f 3 |
т -f- п |
разрядов |
|
|
|
|
|
|
|
Рис. |
1 |
|
Для изображения знака числа отведен один разряд. В боль шинстве машин в знаковом разряде принято изображать знак < + > цифрой 0, а знак<;—> цифрой 1. Для изображения целой части числа на рис. 1 отведено т разрядов, дробной — п разрядов.
26
Определим границы диапазона чисел, с которыми может опери
ровать ЦВМ с разрядной сеткой, изображенной на рис. |
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