книги из ГПНТБ / Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие
.pdfдля изображения одной десятичной цифры, называется тетрадой. Из возможных шестнадцати тетрад используются только первые десять (см. таблицу 1-3).
Например, десятичное число 5789 в двоично-десятичной системе имеет вид:
5 |
7 |
8 |
9 |
0101 |
0111 |
1000 |
100Г |
Двоично-восьмеричная система записи восьмеричных чисел
Аналогично двоично-десятичной системе, в двоично-восьмерич ной системе каждая восьмеричная цифра записывается в двоичной системе. Для кодирования восьми цифр от 0 до 7 требуется три дво ичных разряда.
Группа из трех двоичных разрядов, предназначаемых для изо бражения одной восьмеричной цифры, называется триадой. Из воз можных восьми триад используются все восемь:
Восьмеричная |
Двоичная |
цифра |
триада |
0 |
0 00 |
1 |
001 |
2010
3011
4100
5101
6ПО
7111
Например, восьмеричное число 2357 в двоично-восьмеричной системе имеет вид
9 |
3 |
3 |
7 |
010 |
ОН |
101 |
и г |
§ 2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПОЗИЦИОННЫХ СИСТЕМ СЧИСЛЕНИЯ ПРИ ИСПОЛЬЗОВАНИИ ИХ В ЦВМ
Любая из цифр, применяемых для записи чисел в данной системе счисления, должна в ЦВМ изображаться в виде одного из несколь ких возможных состояний физического элемента.
Чем меньше основание системы, тем меньше требуется для вы ражения числа различных физических состояний. Так, для изобра жения десятичного числа требуется элемент с десятью устойчивыми состояниями, двоичного числа — с двумя. Проектирование эле мента с десятью устойчивыми состояниями технически сложная задача. В то же время элементов с двумя устойчивыми состояниями много (триггер, ферритовый сердечник с прямоугольной петлей
гистерезиса, |
реле, |
электронная лампа, полупроводниковый триод |
||
и т. д.). |
|
|
|
|
Однако |
удобство представления |
двоичных |
цифр при помощи |
|
двухпозиционных |
элементов лишь |
условно. |
Для представления |
10
десятичных цифр также можно использовать двухпозиционные эле менты, но их количество для изображения одного разряда будет значительно больше.
Для оценки зависимости количества оборудования от выбран ной системы счисления будем считать, что для изображения каждого символа в разряде требуется один элемент схемы. При основании
q и числе разрядов п могут быть представлены N = qn различных чисел от 0 до qn~l.
Тогда количество элементов схемы при системе счисления с ос
нованием q равно |
|
M = q-n. |
(1.13) |
Из выражения N -- qn находим п |
|
In N |
(1.14) |
п = ----- . |
|
In q |
|
Подставляя в (1.13) значение п из (1.14), получим |
|
M = \nN - - 2 - |
(1.15) |
ln q |
|
Для нахождения экстремального значения функции (1.15) при равниваем первую производную М ' нулю
^ - = 1п N. In q — 1 0, dq In2 q
откуда
\n q — 1 = 0,
q = e = 2,718.
Нетрудно показать, что функция 1.15 при q = е = 2,718 имеет
минимум. |
При целых основаниях отношение |
имеет |
следующие |
|||
значения |
|
|
|
In q |
|
|
|
|
|
|
|
|
|
q ....................................................... |
2 |
3 |
4 |
8 |
10 |
16 |
S — .................................................. |
2,9 |
2,72 |
2,9 |
3,84 |
4,35 |
5 ,7 7 . |
In q |
|
|
|
|
|
|
Как видно, наиболее' экономичной с точки зрения количества аппаратуры является троичная система, двоичная и четверичная системы равноценны, десятичная система требует в 1,45 раза больше оборудования, чем двоичная.
Однако, кроме экономичности, при выборе системы счисления необходимо учитывать еще ряд факторов:
а) сложность и быстродействие физических элементов, имею щих q устойчивых состояний,
б) простоту выполнения арифметических и логических опера ций.
11
Троичная система, несмотря на экономичность, из-за отсутствия надежных и простых элементов с тремя устойчивыми состояниями, а также из-за полного отсутствия троичных запоминающих устройств
вЦВМ почти не применяется.
Сучетом вышеперечисленных факторов наиболее целесообраз ной является двоичная система счисления, которая в настоящее время применяется в подавляющем большинстве универсальных и специализированных электронных вычислительных машин (ЭВМ).
Кроме основной двоичной системы в ЭВМ используются две вспо могательные системы: восьмеричная и двоично-десятичная. Восьме ричная система применяется для сокращенной записи двоичных чисел при программировании. Двоично-десятичная система исполь зуется как промежуточная при переводе чисел из десятичной си стемы в двоичную и наоборот. Непосредственно вычисления в дво ично-десятичной системе не ведутся.
§3. АРИФМЕТИКА ДВОИЧНЫХ И ВОСЬМЕРИЧНЫХ ЧИСЕЛ
Арифметические действия над числами в любой системе счис ления выполняются по правилам, применяемых в десятичной си стеме .
Для выполнения четырех основных действий необходимо знать таблицы сложения и умножения. Пользуясь таблицами сложения и умножения, выполняют вычитание и деление чисел.
Поразрядное сложение и умножение в любой системе счисления на практике предварительно выполняются в уме в привычной для нас десятичной системе. Затем, также в уме, из получившегося де сятичного результата выделяется, если возможно, число модулей основания q для переноса в следующий разряд. Окончательная поразрядная цифра в данной системе счисления будет равна раз
ности |
между |
десятичным |
результатом |
и |
ti-q. |
|
|
|||||||||||
|
Пример |
1. |
Необходимо |
|
перемножить два восьмеричных числа: |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
X |
778 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66я |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
572 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
572 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6512й |
|
|
|
|
|
|||
1) |
7 |
X |
6 |
= |
5 : - |
4210 |
=- 5 |
X |
8 |
“Т |
2 |
=- |
2 |
-L1- |
5 единиц |
переноса |
||
2) |
7 |
X |
6 |
+ |
4710 |
== 5 |
X |
8 |
+ |
7 |
=-- |
7 |
+ |
5 |
» |
» |
||
3) |
2 |
|
0 = |
|
|
2ю “= 0 X |
8 ~]т 2 =- 2 + |
0 |
» |
» |
||||||||
4) |
7 “Г 2 = |
1 |
|
9ю =- 1 X |
8 |
1 1 : - 1 + |
1 |
» |
» |
|||||||||
5) |
5 |
+ |
7 |
-Ь |
- |
1310 |
-= 1 X |
8 |
+ |
5 |
== |
5 |
“1“ |
1 |
» |
» |
||
6) |
5 + |
1 = |
|
|
6ю == 0 X |
8 + 6 - = |
6 “Г 0 |
» |
» |
|||||||||
|
Все указанные шесть операций в десятичной системе необходимо |
выполнять в уме, окончательный результат записывается восьме ричным числом.
12
Пример 2. Необходимо сложить четыре двоичных числа
, 1 1 1 1 2
|
|
|
|
|
|
|
|
t |
ИИ» |
|
|
|
|
|
|
|
|
|
|
L Ш И |
|
|
|
|
|
|
|
|
|
|
|
^ 11П2 |
|
|
|
|
|
|
|
|
|
|
|
111100.2 |
|
|
|
1) |
1 4 |
1 |
-г |
1 -г |
1 |
- |
2 X |
2 4 -0 = 0 4 |
2 единицы |
переноса |
|
|
|
4ю : |
|
|
|
» |
|||||
2) |
1 |
+ 1 -f |
1 + 1 4- 2 = 6 1 0 = 2 x 3 4- 0 = 0 4 - 3 » |
||||||||
3) |
1 |
-f 1 + |
1 4- 1 4- 3 = 7ю - |
2 x 3 - 4 1 = 1 + 3 » |
» |
||||||
4) |
1 |
+ 1 4- |
1 4- 1 4- 3 = 7ю - |
2 x 3 4 - 1 = 1 4 - 3 » |
» |
||||||
5) |
0 |
|
|
4- 3 - " |
310 |
- 2 х |
1 4 1 = 1 4- 1 |
» |
|||
6) |
0 |
|
|
4- 1 ^ : |
|
2 х 0 4- 1 = 1 4 - 0 |
» |
|
Все указанные операции в десятичной системе выполняются в уме, окончательный результат записывается в двоичной системе.
Арифметика двоичных чисел
В двоичной системе счисления таблицы сложения, вычитания и умножения чрезвычайно просты. Каждая из них состоит всего из
четырех строчек (табл. |
1-4). |
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а 1-4 |
||
Сложение |
Вычитание |
|
|
Умножение |
|||
0 4 - 0 = 0 |
0 — 0 = 0 |
|
0 X 0 = 0 |
||||
1 4 - 0 = 1 |
1 |
— 0 = 1 |
|
о |
1 X 0 = 0 |
||
0 4 - 1 = 1 |
1 |
- 1 = 1 |
- |
. |
0 X |
1 |
= 0 |
1 4 - 1 = ю |
1 0 — 1 = 1 |
|
|
1 X |
1 |
= 1 |
С помощью этих таблиц сложение, вычитание, умножение и де ление двоичных чисел выполняются по правилам арифметических операций над десятичными числами.
Пример 3. Сложить два двоичных числа
119 _п_
|
|
|
16 |
|
1110111,1011 |
15 |
и |
' |
1111,1011 |
|
16 |
|
10000111,0110 |
135 |
— |
|
|
10
13
Пример 4. Вычесть два двоичных числа
_ 10100001 |
_ 161 |
1100011 |
99 |
111110 |
6210 |
При вычитании чисел следует помнить, что занятая в ближай шем старшем разряде единица дает две единицы младшего разряда, а единица, занятая через несколько разрядов, дает две единицы младшего разряда и единицы во всех промежуточных разрядах.
Пример 5. Умножить два двоичных числа
|
|
101 |
111,101 |
X |
|
|
X |
|
|||
|
|
|
101,001 |
8 |
|
|
|
|
|
||
, |
|
101 111 101 |
244 — |
||
; |
m i n i |
m i |
6410 |
||
+ |
10111110 1 |
|
|||
|
11110100,000 101 |
|
|||
Пример 6. Разделить два двоичных числа |
|||||
101100,0 1 1 [1000,111 |
|
||||
Ю00111 |
|
|
— |
44Т : 8 Т = 5“ |
|
1000 111 |
|
|
|||
1000 111 |
|
|
|||
0000 |
000 |
|
|
||
Арифметика восьмеричных |
чисел |
|
|||
Таблицы сложения, |
вычитания и умножения восьмеричных чи |
||||
сел достаточно сложны, |
поэтому запоминать их нет необходимости. |
Действия над числами в восьмеричной системе выполняются по правилам десятичной системы счисления по методике, изложенной выше в данном параграфе.
Пример 7. Сложить два восьмеричных числа
, 575,25 477,77
1 275,248 '
Пример 8. Вычесть два восьмеричных числа
_701007 2777
6760108'
14
При вычитании восьмеричных чисел необходимо помнить, что занятая в ближайшем старшем разряде единица дает восемь единиц младшего разряда, а единица, занятая через несколько разрядов, дает восемь единиц младшего разряда и семь единиц во всех проме жуточных разрядах:
• 7 77 7 8
_700001
_______ 17_
6777628'
Пример 9. Умножить два восьмеричных числа
v 17653
А172
, 37526
Г156655
17653
3613576,
Пример 10. Разделить два восьмеричных числа
1077 131
257
257
000
§ 4. ПЕРЕВОД ЧИСЕЛ ИЗ ОДНОЙ ПОЗИЦИОННОЙ СИСТЕМЫ В ДРУГУЮ
Перевод целых чисел
Пусть целое число N, заданное в ^-ичной системе, необходимо перевести в s-ичную систему.
Преобразовать число N в s-ичную систему, значит представить
его в виде |
|
|
|
|
|
|
|
|
N = aksk + |
|
|
+ . . . + a2s2+ a,s1 + |
a0s°= V a / , |
(1.16) |
|||
|
|
|
|
|
|
|
i=0 |
|
где ak, a.k_ v |
. . . a 2>ai> ao — цифры s-ичной системы от 0 до |
s— 1. |
||||||
Заменим |
в правой |
части равенства (1.16) коэффициенты ак, |
||||||
ak-v ■• |
• a 2 > a i> |
|
ао и |
основание s их ^-ичными |
изображениями |
|||
bk, bk__v |
. . . b,, |
|
blt b0 и sq |
|
|
|
||
N ■■b.sk + b |
o k — |
■6ns° = |
У b.sl . |
(1.17) |
||||
|
k q |
1 |
k - \bq |
\ s] + bis;- |
0 q |
ZJ i q |
|
|
|
|
|
|
|
|
|
i==0 |
|
15
Разделим обе части равенства (1.17) на sq
N |
k - \ |
|
|
|
|
|
|
|
|
|
b.s1 |
bk - $ ~ 2+ |
• • • |
+ b2Sl + bl + |
|||||||
k |
q |
|||||||||
|
|
|
k |
|
|
|
|
|
|
(1.18) |
|
|
= 2 |
bt i ' |
1 |
|
|
|
|||
|
|
|
i --- i |
|
|
|
|
|
|
|
где —— правильная дробь. |
|
|
|
|
|
|
|
|||
sq |
|
ясно, что при делении |
N |
на sq остаток ра- |
||||||
Из равенства (1.18) |
||||||||||
вен Ь0, а частное |
|
k |
b.sc~ l . |
|
|
|
|
|
||
N, = У |
|
|
|
|
|
|||||
и ’ |
1 |
i = 1 |
I q |
|
|
|
|
|
|
|
|
|
|
|
получим |
|
|
|
|||
Разделим снова ЛД на sq, тогда |
|
|
|
|||||||
|
|
IVi |
=V |
|
&.S1' - 2 |
&1 |
|
|
(1.19) |
|
|
|
|
— |
1 |
17 |
|
|
|
|
|
|
|
|
1=2 |
|
|
|
|
|
|
|
Из равенства (1.19) видно, что остаток равен |
blt а новое частное |
|||||||||
1=2 |
|
& раз, |
найдем |
все |
числа |
60, Ьх, . . . bk_ r |
||||
Выполняя процесс |
||||||||||
Последнее частное будет |
равно |
N k = |
bk. |
Последовательное деле- |
ние производят до тех пор, пока не получится частное, меньшее, чем sq. Это последнее частное даст старшую s-ичную цифру числа N.
Таким образом, для перевода целого числа N из позиционной системы с основанием q в позиционную систему с основанием s его надо последовательно делить на основание s, записанное в исходной системе q (sq). Деление производится до тех пор, пока не получится частное, меньшее, чем sq. Число в новой системе запишется в виде остатков деления Ь0, Ьх, . . . bk_ y Последнее частное N k = bk дает
старшую цифру s-ичного числа. Все арифметические действия вы полняются в исходной системе счисления q.
Перевод |
правильных дробей |
|
|
|
|
|
|
|
||||
Пусть |
N — правильная ^-ичная дробь. Предположим, |
что ее |
||||||||||
s-ичная запись найдена: |
|
|
|
|
|
|
|
|
||||
N = a—Г |
—2° |
—З1, |
+ • • |
-а- > Г |
|
|
|
( 1.20) |
||||
|
с—1 |
с—2 |
|
с—3 |
|
|
|
|
i=l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где a_v а_2, . . . a_k s-ичные |
цифры |
от 0 до s— 1. |
Заменяя а_ |
|||||||||
а 2> • |
• • a_k |
и s их |
д-ичными |
изображениями |
b_1 , |
Ь_2 , |
. . . b |
|||||
и sq, |
получим |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
у |
|
|
+ ь |
-к _ |
i b- s |
( 1. 21) |
||
U = b_xs - '+ b _ 2s-* + b лО |
|
|
|
|
||||||||
|
|
|
2 q |
|
- 3 q |
|
-ъ ч |
|
|
|||
|
|
|
|
|
|
|
|
|
|
i=i |
|
|
16
Умножим обе части равенства (1.21) на sq
к
( 1.22)
Целая часть равенства (1.22) равна b_v а дробная часть
к
Умножая ЛЦ на sq, получим
к
= |
b- i so~ {i~ 2)- |
(1.23) |
|
||
Целая часть равенства (1.23) равна b_v а дробная |
часть |
|
k |
|
|
* 2 = 2 |
й- А Г (,-'2)- |
|
(= 3 |
|
|
Путем последовательного умножения числа N и дробных частей |
||
получающихся произведений на |
sq получим в виде |
целых частей |
этих произведений <7-ичные записи s-ичных цифр. |
из системы q |
|
Таким образом, для перевода правильной дроби |
в систему s ее надо последовательно умножать на основание s, вы раженное в ^-ичной системе (sq). Перемножаются только дробные
части N, |
ЛЦ, |
N 2, . . . N k. Правильная дробь в новой системе за |
пишется |
в виде целых частей получающихся произведений b_v |
|
b_2 » . . • |
Ь_к. |
Целая часть первого произведения дает старшую |
цифру дроби. Все арифметические действия выполняются в исход ной системе счисления q.
Последовательное умножение продолжаем до тех пор, пока по сле очередного умножения на sq дробная часть не окажется равной нулю (точное преобразование в s-ичную дробь), или пока не полу чим достаточное для заданной точности количество разрядов.
Перевод неправильных дробей
При переводе неправильных дробей отдельно переводят целую и дробную части по соответствующим правилам.
Перевод чисел из десятичной системы в двоичную
Пользуясь общим алгоритмом перевода, Ъписанным выше, пе реведем в двоичную систему несколько десятичных чисел".
2 Заказ № 2437 |
1 |
. . ! |
17 |
I ЧЛТАДЬ; '‘W |
ИЛ ; |
Пример |
11. |
Перевести десятичное число 9510 в двоичное |
|
|||||||
95 |
|
11 |
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
47 |
11 |
|
|
|
|
|
|
|
|
15 |
|
4 |
|
|
|
|
|
|
|
|
|
23 |
1 |
|
|
|
|
|
|||
14 |
|
7 |
2 |
|
11 |
I2 |
|
|
|
|
1 |
|
6 |
3 |
|
10 |
|
|
|
|
|
|
|
5 |
I 2 |
|
|
|
||||
|
|
1 |
2 |
|
1 |
4 |
2 |
|
|
|
|
|
|
1 |
|
|
1 |
2 |
|
2_ |
|
|
|
|
|
|
|
|
t 0 I |
|
Т |
ч- |
9510= 10111112= |
1-26 + 0-25+ |
1-24+ Ь 2 3+ 1-22+ |
1-21+ |
1-2° |
||||||
|
|
= 64 + 0 + 16-f8 + 4 + 2-}-1 — 95ю. |
|
|
|
|||||
Пример 12. Перевести десятичное число 12910 в двоичное |
||||||||||
129 |
11 |
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|
64 |
|
11 |
|
|
|
|
|
|
|
|
9 |
6 |
|
|
|
|
|
|
|
|
|
|
32 |
I2 |
|
|
|
|
|
|
||
8 |
4 |
|
2 |
|
|
|
|
|
|
|
|
16 |
I2 |
|
|
|
|
||||
1 |
4 |
|
12 |
|
|
|
|
|
||
|
16 |
8 |
I2 |
|
|
|
||||
|
0 |
|
12 |
0 |
8 |
|
|
|
||
|
|
4 |
|
|
|
|||||
|
|
|
0 |
|
0 |
|
4 |
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
ш |
|
~ |
|
12910= |
10000001а= 1-27 + 0-26 + 0-25 + 0-24 + 0-23 + |
0-22 + |
||||||||
|
|
|
+ 0-2х + |
1-2° = 128+ 1 = |
12910. |
|
|
|
||
Пример |
13. |
Перевести десятичное |
число |
0,62510 |
в |
двоичное: |
||||
|
|
|
| |
0, |
625 |
|
|
|
|
|
|
|
|
|
|
X |
2 |
|
|
|
|
|
|
|
|
1, |
250 |
|
|
|
|
|
|
|
|
|
|
X 2 |
|
|
|
|
|
|
|
|
|
0, |
500 |
|
|
|
|
|
|
|
|
|
|
X 2 |
|
|
|
|
|
|
|
|
|
1, |
000 |
|
|
|
|
|
0,625 = 0,1012 = 0 -2°+ 1 • 2-1 + 0- 2~2+ 1 • 2_3 = . |
|
|||||||||
|
|
|
= — + — = — = 0,62510. |
|
|
|
||||
|
|
|
2 |
8 |
8 |
|
|
|
|
|
18
Пример 14. Перевести десятичное число 0,585 в двоичное
1, |
585 |
|
X 2 |
1, |
170 |
|
X 2 |
о, |
340 |
|
X 2 |
0, |
680 |
|
X 2 |
1, |
360 |
|
X 2 |
0, |
720 |
|
X 2 |
1, |
440 |
0,58510 = 0,100101» с точностью до 2_6.
При переводе неправильных десятичных чисел отдельно пере водят целую и дробную части. Например, 129, 62510 = 10000001012.
Метод последовательного деления на 2 для перевода десятичных чисел применяется в основном только при ручном переводе чисел на бумаге. В ЦВМ обычно все исходные данные вводятся, а резуль таты вычислений выводятся в десятичной системе.
Перед вводом в ЦВМ десятичные числа предварительно с по мощью специальных устройств переводятся в двоично-десятичные, которые затем по стандартной программе в самой машине автомати чески переводятся в двоичные.
Для перевода чисел из двоично-десятичной системы в двоичную необходимо последовательно выделять из двоично-десятичного кода отдельные тетрады, начиная с младшей, умножать выделенные тет рады на соответствующие степени десяти, выраженные в двоичной системе, и все промежуточные произведения просуммировать.
Пример 15. Перевести десятичное число 3510 в двоичное. Число 3510 в двоично-десятичной системе имеет вид
ООП |
0101 |
2 тетрада |
1 тетрада |
3510 = 00110Ю12_ 10 = 01012-Ю°0 + 00112- Ю}0 =
= 01012-12+ 00112-10102= 0101 + 11110= 1000112=
= 1-25 + 0-24+ 0-23 + 0-22+ 1-21+ 1.2» = 32 + 2 + 1 = 3510..
2 |
19 |