книги из ГПНТБ / Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей
.pdfР А З Д Е Л В Т О Р О Й
АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ОСНОВЫ ЦВМ
Г Л А В А 1
АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЦВМ
§ 1—1. Позиционные системы счисления
Под системой счисления понимают совокупность приемов и правил обозначения действительных чисел цифрами.
Системы счисления бывают непозиционные и позиционные. НепоЗ'Иционные системы счисления— это такие системы-, в которых те или иные знаки, обозначающие цифры, не меня ют своего количественного значения при записи их в ряду других знаков числа. Способ записи чисел палочками, куби ками и так далее (рис. 2—-1), при котором каждый знак обо-
э н в и е л п Е н т н о 5
8811 э к в и ь й п е н т н о Ц
Рис. 2— 1. Представление чисел в непозицнонной системе счисления
значает количество, равное единице, является примером непо зиционной системы счисления. Это — наиболее древняя систе ма. В настоящее время нашли широкое применение так на зываемые позиционные системы счисления.
Позиционные системы счисления— это такие системы, в которых один и тот же знак меняет свое' количественное зна-
чение іпри записи его в ряду других знаков числа. Например, при записи числа «22» вторая двойка обозначает число «20», а не «2».
Число 2708,36 ів десятичной системе счисления является
сокращенной записью выражения: |
|
|
|
|
|
||
2708,36 = 2 • ІО5 + 7 • ІО2 + 0 • 10' + |
8-10° + 3 -10"1 -j- 6- IO"2. |
||||||
Здесь 10 — основание десятичной |
системы счисления. |
||||||
2, 7, 0, 8, 3 и 6 — цифры десятичной системы счисления. |
|||||||
В позиционной системе счисления любое число записывается в виде |
|||||||
суммы: |
|
|
|
|
|
|
|
Ң = а гп• Sm -I-ат _ j• Sm |
1 -f-. . . |
-f- й о *S0 4- л - I * 5 ~1 |
. |
|
|||
|
|
|
т |
|
|
|
|
|
... + a . n- S - n = |
'^l ar Si, |
|
- |
(2 -1 ) |
||
|
|
i=—n |
|
|
|
||
где |
|
|
|
|
|
|
|
S — целое число — основание |
системы счисления, |
записываемое |
в де |
||||
сятичной системе счисления, |
N, |
причем |
аі < S; числа п, т |
||||
d i — цифры, |
изображающие |
число |
|||||
(п, т > |
0) могут принимать любые |
целочисленные |
значения. |
||||
В десятичной системе счисления |
основание 5 — 10. |
В за |
висимости от принятого основания системы 'Счисления могут быть двоичные, троичные, восьмеричные, шестнадцатиричные
и |
т. д.: |
в |
двоичной |
системе счисления 5 = 2, в |
троичной |
S |
=| 3 и |
т. |
д. Для |
изображения чисел,' например, |
в восьме |
ричной системе счисления используются цифры 0, 1, 2, 3, 4, 5, 6, 7. Число 8 записывается как 10 (единица в более старшем разряде).
При решении задач на электронных вычислительных машинах обычно используются десятичная, восьмеричная, двоичная, двоично-десятичная и шестнадцатиричная системы счисления.
Десятичная система счисления, как наиболее привычная и понятная, используется в процессе подготовки задач к ре шению, а также при выдаче результатов решения из машины.
Двоичная система счисления применяется для представ ления чисел и выполнения операций ів самой машине, так как легко может быть осуществлена на элементах, обладающих двумя устойчивыми состояниями. Из конструктивных сообра жений более выгодна троичная система счисления, однако по тем же причинам, что и десятичная (техническая трудность в реализации устойчивых состояний, больших двух), она не получила распространения.
Восьмеричная и шестнадцатиричная системы счисления используются обычно для записи команд программы на блан ках, так как запись в этих системах счисления удобна для нгерѳвода в двоичную систему.
9!
Двоично-десятичная система счисления применяется как для представления чисел и выполнения операций в двоично десятичных машинах, так и при переводе чисел из десятич ной системы в двоичную и наоборот в машинах, работаю щих в двоичной системе счисления. При этом в машину десятичные числа поступают в двоично-десятичном виде, а перевод их в двоичную систему осуществляется автоматически с помощью специальных программ. Результаты решения зада чи автоматически переводятся в двоично-десятичную систе му, из которой с помощью выводных устройств — в обычную десятичную систему счисления.
В дальнейшем мы будем рассматривать двоичную, вось меричную, шестнадцатиричную и двоично-десятичную систе мы счисления, которые в подавляющем большинстве случаев используются в электронных цифровых вычислительных ма шинах любого класса.
§—2. Двоичная система счисления
Основание системы — S = 2. Цифры, с помощью которых ' изображается любое число N в двоичной системе счисления, будут, очевидно, 0 и 1. Например, число 27, 25 в двоичной системе запишется так (согласно формуле 2—1):
27,25іо = 1.24 + 1.23 + І0 .2 2 - Н І . 2 1 + |
1.20 + |
0 . 2 ~ ^ + |
1 .2 " 2 |
|||
і |
\ |
I |
і |
I |
I |
I |
16 |
8 |
0 |
2 |
1 |
0 |
1 /4 |
|
|
27 |
|
|
0,25 |
|
Итак, 27,25,0 = |
111011,01а. |
|
|
|
|
|
Индексы у чисел означают оонование той системы, в кото |
||||||
рой записано соответствующее число *. Покажем |
соответствие |
|||||
десятичных чисел двоичным: |
|
|
|
Таблица 1 |
||
Десятичные |
Двоичные |
Десятичные |
Двоичные |
|||
числа |
числа |
|
числа |
|
числа |
|
0 |
0 |
|
|
' 1'2 |
|
1400 |
1 |
1 |
|
|
13 |
|
4101 |
2 |
10 |
|
|
14 |
|
1440 |
3 |
11 |
|
|
15 |
|
11 и |
4 |
100 |
|
|
16 |
|
ЮООО |
5 |
101 |
|
|
17 |
|
100О1 |
6 |
п о |
|
|
18 |
|
10040 |
7 |
ш |
|
|
49 |
|
10041 |
8 |
1000 |
|
|
20 |
|
10100 |
9 |
10011 |
|
|
21 |
|
10101 |
Ю |
'1010 |
|
|
22 |
|
10140 |
11 |
1011 |
|
|
23 |
|
10111 ит. д. |
* В десятичных и двоичных числах мы будем, как правило, опускать эти индексы.
29
Таким образом, можно с помощью I двоичных разрядов выразить все числа, заключенные между 0 и 2 1—1 включи тельно. Аналогично L десятичных разрядов позволяют напи сать все числа от нуля до 10L—1 'включительно. С другой стороны, каждому десятичному числу соответствует его двоичный эквивалент и обратно. Тогда можно написать, что
21 - 1 = 10L — 1,
откуда,
I • logio 2 = L
то есть десятичная запись значительно короче двоичной (іпримерно в 3,3 раза). Арифметические операции над двоич ными разрядами очень просты:
Сложение |
Вычитание |
Умножение |
0 + 0 = 0 |
0 —0 = 0 |
0- 0 = 0 |
0 + 1 = 1 |
\ |
0 . 1 = 0 |
10— 1 = 1 |
||
■1+0=1 |
1 —0 = 1 |
11 0 = 0 |
1 +; 1 = Ю |
fl; — 1 = 0 |
1-1 = 1 |
§1—3. Перевод чисел из десятичной системы счисления
вдвоичную и обратно
Перевод чисел из десятичной системы в двоичную
Используем формулу (2—1). В двоичной системе счисле ния любое десятичное число N можно записать в виде:
N = ап • 2 - + ая^ • + . . . + а0 ■2° + а_, • 2"1 +
+ |
... + а.,.2 -» = 2 а (-2' |
(2 -2 ) |
|
—П |
|
где 5 — 2 и а = 0; |
1. |
|
Ищем для данного числа N]0 такую целую степень двойки К, чтобы 2К было числом, ближайшим к Ni0 (меньшим или равным ему). Подбираем цифры а (0 или 1) в формуле (2—2)
таким образом, чтобы сумма чисел |
аг--2' не получи- |
• |
—п |
лась больше Nl0. |
N = .377 в двоичную систему |
Пример 1. Перевести десятичное число |
|
счисления. |
|
93
Используя уравнение (2—2), записываем Число 377 |
В двоичной. си |
||||||||
стеме счисления: |
|
|
|
|
|
|
|
|
|
377 = 1.2» |
+ 0.27 + |
1.26 + |
1.25 + L24 +' 1.23 |
+ |
0.22 + |
0.21+ |
1.2° = ЮМ 11001. |
||
256 |
0 |
64 |
32 |
16 |
8 |
|
0 |
0 |
1 |
Действительно,
256 + 0 + 64 + 32 + 16 + 8 + 0 + 0 + 1 = 377.
Таким образом, 377 = 101111001.
Пример 2. Перевести число 35, 25 в двоичную систему:
35,25 - 1.25 + |
0.24 + |
0.23 + |
0.22 + |
1.21 + |
1.2° + |
0 .2 '1 + 1.2-* = |
|
32 |
0 |
0 |
0 |
2 |
1 |
0 |
0,25 |
|
|
|
|
|
= |
35,25 = |
100011,01 |
Более удобное правило: ври переводе целого числа из десятичной системы счисления в двоичную делим число N\a на 2 (основание системы счисления). Если от деления числа (Ѵю на 2 получается остаток, то он записывается в младший разряд двоичного числа. Если остатка нет, то записывается 0. Частное от деления делим также на 2. Если остаток есть, то он записывается во второй двоичный разряд, если остат ка нет, то пишем 0. Деление продолжается до тех пор, пока частное от деления не станет меньше основания системы счисления.
Пример 3. Перевести число 20 в двоичную систему счисления.
20 I 2
0
10 I 2
0'
I
|
1 |
|
|
• ' |
|
2 |
I 2 |
|
|
0 |
1 |
20 = |
10100. |
|
|
Пример 4. Перевести число 25 |
в двоичную |
систему счисления. |
|
25 I 2 |
|
|
|
1 |
|
|
|
12 I 2 |
|
|
|
0 |
|
|
|
t |
|
|
|
о |
3 |
I |
2 |
|
|||
|
1 |
• |
1 |
25,о= |
11001а- |
|
|
94
При переводе дробной части числа или дробных чисел умножаем дробь на 2. Если произведение больше 1, то в старший разряд после занятой записываем 1. Если меньше 1, то в старший разряд записываем 0. Затем отбрасываем це лую часть, если она появилась, и вновь умножаем мантиссу на 2 и так далее до получения мантиссы, равной нулю, или требуемого количества двоичных разрядов после запятой.
Максимальное количество двоичных разрядов определяет ся разрядной сеткой машины.
Пример 5. Перевести в двоичную систему дробь 0,625.
0 525
X
2
1 050
X
2
0 100
X |
0,525 = 0 ,1 0 0 0 ... |
|
2 |
||
|
0 200
X
2
0 400
Пример 6. Перевести в двоичную систему дробь 0,32.
0 |
|
32 |
|
1) |
|
64 |
0,32 = 0 ,0 1 0 1 ... |
1 |
|
28 |
|
0 |
V |
56 |
|
1 |
Ѵ |
12 |
|
Пример 7, |
Перевести в двоичную систему |
счисления |
число 1\1,25. |
11 |
I 2 |
----- |
|
1 |
|
0 • |
25 |
t |
1 |
|
0 |
50 |
|
2 |
I 2 |
1 |
00 |
|
0 |
1 |
|
|
|
11 = ЮМ |
0у25 = 0,01 |
И ,25 = 1O1U01. |
|
95
Перевод чисел из двоичной системы счисления: в десятичную
Перевод из двоичной системы счисления в десятичную осуществляется суммированием десятичных эквивалентов двоичных разрядов, в которых записана единица.
Пример 1. Перевести в десятичную систему число 1011,01.
1011.01 = 1.23 + 0.22+ 1.2' + ' 1.2° + 0.2 —1+ - 1. 2- * =
= 8 + 2 + 1 + 0,25 = 11,25.
Пример 2. Перевести двоичное число 10001,101 в десятичную систему счисления.
10001,101 |
= 1.24 +:0,23 + 0.22 + 0.21 + 12« + 1.2 " 1 + 0 .2 " 2 + |
+ |
1 .2 - з = іб + 1 + - L - + - L - = 17—| — |
§ 1—4. Восьмеричная система счисления
Любое число N может быть записано в восьмеричной системе счисления в следующем виде:
|
|
m |
а,-8'\ |
(2 -3) |
|
|
N = 2 |
||
где |
• |
І——П |
|
|
|
|
|
||
aL= |
0 т- 7; |
8 — основание системы счисления. |
|
|
|
п, |
пг — целые числа (п |
и /п > 0). |
|
Восьмеричная система счисления применяется в основном для записи команд программы на бланках. Она обладает тем преимуществом перед десятичной, что из нее легко можно перейти к двоичной системе счисления.
Правила перевода из восьмеричной системы в двоичную
Цифры числа N8 записываем с помощью двоичных цифр, иопользуя для каждой цифры числа Ns три двоичных разря да. Полученная запись числа и есть запись числа N&в двоич ной системе счисления.
Пример 1. Число 3778 перевести в двоичную систему.
3778 |
= |
0Н |
1 111 |
lllil |
Пример 2. Перевести |
в двоичную систему число 6і528: |
|||
6528 |
= |
110 |
101 |
010 |
|
|
I |
I |
1 |
|
|
6 |
5 |
2 |
96
О б р а т н ы й п е р о в од из двоичной системы счисле ния в восьмеричную осуществляется путем разбивки двоич ного числа на тройки двоичных цифр от запятой.
Пример 3. Перевести |
двоичное |
число |
11T01T10, |
Olllll в восьмеричную |
систему счисления: |
|
|
|
|
011 |
mi |
ПО, |
ОМ |
по, |
1 |
1 |
1 |
1 |
1 |
3 |
5 |
6 |
3 |
6 |
т. е. Шаі'НО.ОІШІ = 366,36„.
Перевод чисел из десятичной системы счисления в восьмеричную и обратно
Перевод осуществляется по тем же правилам, что и пере вод из десятичной системы счисления в двоичную и обратно.
Разница заключается лишь в том, что деление и умноже ние производится на 8 —основание восьмеричной системы.
Пример 1. Перевести число 67,225 в восьмеричную систему счисления
67 |
I 8 |
0 |
225 |
|
3 |
|
|
||
|
|
X |
|
|
|
|
|
8 |
|
67,о = |
Ш38 |
1 |
S00 |
0,-225,о = 0,163а. |
6 |
400 |
|||
|
|
3 |
200 |
|
|
|
1 |
600 |
|
и т. д.
Ответ: 67,225 = 103,1638.
Пример 2. Перевести число 377,Зв в десятичную систему' счисления.
7 |
7,3В= 3-8* -I- 7-81 + |
7-8° + 3-8~і = 255 — |
|
I |
I |
I |
8»° |
8і |
80 |
8-1 |
|
§ 1—5. Шестнадцатиричная система счисления
Эта система счисления нашла широкое применение в сов ременных ЭВМ для записи чисел и команд программы. В ка честве примера мы дадим таблицу соответствия для десятич ных чисел и способ преобразования для четырехзначных шестнадцатиричных чисел. Правила перевода из десятичной системы счисления в шестнадцатиричную и обратно отлича ются от рассмотренных ранее лишь тем, что деление и умно-
7 - 3 2 |
97 |
Жеане производится на іВ — основание шестиадцатиричной системы счисления (см. примеры 1, 2 § 1—4). Остатки (-< 15) 'кодируются в соответствии с таблицей.
|
|
|
Т а б л и ц а 2 |
Десятичные |
Шестнадцати |
Десятичные |
Шестнадцати |
числа |
ричные числа |
числа |
ричные числа |
0 |
0 |
17 |
и, |
1 |
1 |
18 |
12 |
2 |
2 |
19 |
13 |
3 |
3 |
20 |
14 |
4 |
4 |
21 |
15 |
5 |
5 |
22 |
16 |
6 |
6 |
23 |
17 |
7 |
7 |
24 |
18 |
8 |
8 |
25 |
19 |
9 |
9 |
26 |
ІА |
10 |
А |
27 |
1В |
11 |
В |
28 |
1C |
12 |
С |
29 |
1Д |
13 |
Д |
30 |
1Е |
14 |
Е |
31 |
1 F |
15 |
F |
32 |
20 |
16 |
10 |
33 |
21 |
§ 1—6. Двоично-десятичная система счисления
Если каждую цифру десятичного числа заменим эквива лентной ей четверкой двоичных (цифр (лотетрадно), то полу- > чим двоично-десятичную запись десятичного числа. Двоично десятичная запись в машинах, работающих в двоичной систе ме счисления, используется в качестве /промежуточной при переводе чисел из десятичной системы счисления в двоичную и обратно.
Пример 1. Представить число 275,56ю в двоично-десятичной системе.
275,56,0 = 0010 |
ОШ1 |
0101. |
0101 . ОНО |
Таким образом, число 0010011:10101, QlflTöllO, есть двоично>-десятич- ная запись числа 275,66-
\
§1—7. Формы представления двоичных чисел в машине
Вцифровых вычислительных машинах числа представля ются в одной из двух форм:
а) с фиксированной запятой; б) о плавающей запятой (шолулогарифмическая' форма
представления чисел).
98
Форма представления чисел с фиксированной запятой
Каждое из чисел, над которыми производится то или иное действие в машине, имеет ограниченное число двоичных раз рядов, определяемое .разрядной сеткой машины. Количество разрядов /в разрядной сетке определяется назначением маши ны. В машинах с фиксированной занятой число представля ется в виде последовательности двоичных цифр, разделенных запятой на дробную и целую часть. Знак числа ± может ко дироваться также 0 и 1. При такой форме представления фиксируется порядок числа. Обычно запятую фиксируют по сле знакового разряда (рис. 2—2). Тогда все числа, с кото-
Рис. 2—2. 16-разрядная сетка машины с фиксированной за пятой. Запятая фиксируется после знакового разряда
рыми оперирует машина, должны быть по модулю меньше едивдщы. Обычно число двоичных разрядов машин с фикси рованной запятой не превышает 24.
Для того, чтобы числа (исходные, промежуточные и конеч ные результаты), с которыми работает машина с фиксиро ванной запятой, были по модулю меньше единицы, исполь зуются маоштабные коэффициенты. Покажем на примере, как они выбираются.
Пример 1. На машине с фиксированной запятой вычислить
|
|
|
|
|
|
а х + Ь |
|
|
|
|
|
|
где: а — 5, |
в — 10, с = 2, |
а х меняется в пределах от |
10 до 20. Так как |
|||||||||
а, в, с |
и X |
больше |
единицы, |
то вводим масштабные |
коэффициенты: |
|||||||
дляі а = |
5 |
М„ = |
( |
аы = |
а |
|
= |
0,5 < |
1 |
|||
10 |
т. е. |
— —— |
10 |
|||||||||
|
|
|
|
\ |
|
|
Ма- |
|
|
|
|
|
Аналогично, для |
= |
20, |
Мх = |
100. Тогда |
Ма-Мх = |
1000. |
||||||
Для |
в = |
10 Л1„ = 1000 |
(так как Ма • Мх = 1000, то |
и для |
в выбираем |
|||||||
масштаб Мв= 1000. Тогда масштаб |
числителя |
Мчнсл = |
1000). |
|||||||||
Для |
с = |
2 Мс = |
10. |
|
|
|
|
|
х |
|
|
|
Результат |
вычисления |
ум для различных значений |
нужно, очевидно, |
|||||||||
всякий раз умножать |
на |
|
|
|
|
|
|
' |
, |
|||
|
|
|
|
М J |
—^ чи1л. |
1000 |
100. |
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
||||
|
|
|
|
|
44знам. |
|
|
|
|
|
у* |
99 |