
книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов
.pdfТ а б л и ц а 1
Второе
слагаемое
Первое |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
|
|
|
слагаемое |
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
2 |
3 |
4 |
5 |
6 |
7 |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
|
2 |
|
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
3 |
|
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
4 |
|
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
сл |
|
сл |
6 |
7 |
10 |
11 |
12 |
13 | |
14 |
6 |
|
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
7 |
|
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
П р и м е р ы. |
|
|
|
|
|
|
|
||
1} |
+ (1(?1П0111110Ь или (П59)ю + |
(494)10 = |
(1653)10. |
|
|||||
|
|
( 11001110101)2 |
|
|
|
|
|
|
|
2) |
+ |
(1= |
00,Ь |
илп |
(,025)io + (1о23)10 = |
(2048)10, |
|
||
|
|
(100000000000)7 |
|
|
|
|
|
|
180
3) ( 1! S ! ! ; или (3,3125)10 + (1,5625)10 = (4,8?5)10,
(100, 1110)a
Сложение двух восьмеричных однозначных чисел производится при помощи табл. 7.
Например, выполним сложение двух восьмеричных чисел:
11 — единицы переноса;
(3447)8— первое слагаемое; (7045)3 — второе слагаемое.
(12514),
Начинаем с разряда единиц: (7)8+ (5)8= (14)е, записываем цифру 4, а единицу переносим в следующий разряд. Переходим к следующему разряду:
(l)e+ (4 )s + (4)e = (5)e + (4)e = (ll)s.
Единицу |
записываем |
и |
переносим |
|
Т а б л и ц а 8 |
|||
единицу в следующий разряд. Переходя |
|
|
|
|||||
последовательно от |
разряда |
к |
разряду, |
|
0 |
1 |
||
определяем сумму |
(12514)8. |
|
|
|
||||
|
|
|
|
|
||||
Умножение двоичных и восьмерич |
|
|
|
|||||
ных чисел производится аналогично ум |
0 |
0 |
0 |
|||||
ножению десятичных чисел, |
|
при этом |
||||||
пользуются |
соответствующими |
таблица |
1 |
0 |
1 |
|||
ми умножения — таблицей |
для |
умноже |
|
|
|
ния чисел в двоичной системе счисления (табл. 8) и таблицей для умножения чисел в восьмеричной системе счисления (табл. 9).
П р и м е р ы .
1) ( 10110111)3
х( 1101)3
4 10П0П111 или (183)ioX(13)io= ( 2379)Jo.
10110111
( 100101001011)2
181
2)(З1076)3
Х(62),
62174 или (12862)10 X (50)ю = (643100)ю.
226564
(2350034)8
Вычитание и деление с числами в двоичной и восьмеричной си стемах счисления производится так же, как с десятичными числами, при этом используются таблицы сложения и умножения двоичных и восьмеричных чисел.
Т а б л и ц а 9
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
2 |
0 |
2 |
4 |
6 |
10 |
12 |
14 |
16 |
3 |
0 |
3 |
6 |
11 |
14 |
17 |
22 |
25 |
4 |
0 |
4 |
10 |
14 |
20 |
24 |
30 |
34 |
5 |
0 |
5 |
12 |
17 |
24 |
31 |
36 |
43 |
6 |
0 |
6 |
14 |
22 |
30 |
36 |
44 |
52 |
7 |
0 |
7 |
16 |
25 |
34 |
43 |
52 |
61 |
182
Рассмотрим один пример деления двух чисел в двоичной системе счисления:
11111001111100101
100101 11011
110010
100101
110111
100101
100101
100101
о
§ 3. Машины с фиксированной и плавающей запятой
Каждое число состоит из целой и дробной части. При записи чисел на бумаге эти части отделяются друг от друга запятой. Обычно в вычислительную машину вводят только значащие цифры исходных чисел без запятой. Как же указать электронной вычислительной машине, сколько целых разрядов содержат вводимые числа? Для различных типов машин это делается по-разному.
Некоторые машины устроены таким образом, что у всех вводи мых в них чисел запятая стоит после определенного заранее фиксиро ванного разряда. Они называются машинами с фиксированной за пятой. К ним относятся машины «Урал-1» и «Минск-1». Например, «Минск-1» оперирует с числами, которые по абсолютной величине меньше единицы, поэтому числа задаются своими дробными частями.
Ноль, соответствующий разряду целых единиц, и запятая в ма шину не вводятся.
Например, число 0,125 задается цифрами 125, а число 0,0625 — цифрами 0625. Дробные части десятичных чисел после ввода в элект ронную машину автоматически переводятся в двоичную систему счис ления. Для хранения одного двоичного числа на различных машинах используется различное количество разрядов, например, на «Мин ске-1» 31 разряд. Для хранения дробной части числа, переведенного в двоичную систему, используются 30 разрядов. Первый разряд яв ляется знаковым. Если число является положительным, то машина задает в знаковый разряд нуль, если же оно отрицательное, то — единицу. В машину «Минск-1» вводятся десятичные числа, содер жащие в дробной части семь цифр.
183
Например, число — 0,0234375 задастся и машину «Минск-1» как — 0234375. После перевода в двоичную систему оно будет хра нится в машине в следующем виде:
1 0000 1100000000000000000000000.
Таким образом, машины с фиксированной запятой воспринимают только числа, у которых запятая стоит в строго фиксированном месте. Если при работе этих машин в промежуточных результатах получа ется число больше единицы, например при сложении, то его старшие слева от запятой разряды потеряются и получится неверный ре
зультат.
Во избежание этого предусмотрена автоматическая остановка машины (такая остановка называется «остановкой по переполнению разрядной сетки машины»). Это значит, что при подготовке задачи для решения на машине с фиксированной запятой нужно выбирать такие масштабы (единицы измерения) для исходных данных, чтобы все числа и все получающиеся промежуточные результаты были
меньше единицы. |
например, БЭСМ, производят вычисления |
Другие машины, как, |
|
с числами, представленными в нормализованной форме. |
|
Любое число можно |
продставить в виде произведения правиль |
ной дроби и целой степени основания системы счисления, в которой
это число записано. |
|
(iV) 10 можно представить в виде |
М =В-10Р, |
|
Например, число |
||||
где |В|<1. Число |
В |
называется мантиссой числа N, а |
число р — |
|
его порядком. Если |
|В|^0,1, то |
говорят, что N записано в нормализо |
||
ванной форме; если |
|5 |< 0 ,1, |
то — в ненормализованной форме. |
||
П р и м е р ы. |
|
|
|
|
1)36587,6 = Ю3.0,365876;
2)36587,6 = 107-0,00365876;
3)36587,6= Юз-36,5876;
4)0,00365876 = 10~ 2 -0,365876.
Эти примеры показывают, что десятичное число может быть различными способами представлено в виде произведения степени 10 и десятичной дроби. В первом примере произведение 105-0,365876 является нормализованной формой числа 36587,6, так как его ман тисса 0,365876 больше 0,1. Порядок этого числа при такой мантиссе равен 5. Во втором примере исходное число записано в ненормализо ванной форме, так как 0,00365876 меньше 0,1. Порядок исходного чис
184
ла стал теперь равен 7. В третьем примере число 36,5876 не является мантиссой числа 36587, так как 36,5876 больше 1. И, наконец, послед ний пример показывает, что порядок числа может быть отрица тельным.
Из этих примеров видно, что заданное число может быть раз личными способами записано в ненормализованной форме и поэто му иметь различные порядки и мантиссы. Но записать его в норма лизованной форме можно только одним способом. Порядок и ман тисса числа при записи его в нормализованной форме точно опреде ляются по самому числу. Поэтому вместо числа можно задавать в электронную вычислительную машину его порядок н мантиссу, ко торые получаются при такой записи. В машине эти два числа пере водятся в двоичную мантиссу и десятичный порядок.
П р и м е р . Десятичная мантисса и десятичный порядок числа
(4,375)10 = (100,011)2
соответственно равны т = 0,4375 и р= 1. Эти два числа в машине переводятся в двоичную мантиссу (0,100011)2 и в двоичный порядок (11)2, так как
( 100,011)., ^ (0,10001 П2-(10)2(11)г .
Машины, в которых числа задаются мантиссами и порядками, называются машинами с плавающей запятой. В этих машинах все операции над числами сводятся к операциям над их порядками и мантиссами, записанными в двоичной системе.
Точность вычислений в машинах с фиксированной запятой мень ше, чем в машинах с плавающей запятой. Для машин с фиксиро ванной запятой труднее составлять программу работы, так как при ходится подбирать масштабные коэффициенты, чтобы все промежу точные результаты были меньше единицы. Но их устройство проще, чем у машин с плавающей запятой, у которых имеется дополнитель ная аппаратура для хранения и выполнения арифметических опера ций с порядками введенных в машину чисел.
Среди больших вычислительных машин большое распростране ние получили машины, которые могут производить вычисления как с числами с фиксированной запятой, так и с числами с плавающей запятой. К таким машинам относится, например «Урал-4».
Выполнение арифметических операций. Рассмотрим сначала как в электронной вычислительной машине происходят арифметические операции с числами с фиксированной запятой. Пусть разрядность машины равна 16. Нулевой разряд используется для знака числа: нуль в этом разряде обозначает положительное число, единица — от
— 185
рицательное. Остальные 15 разрядов используются для записи двоич ных цифр числа.
Положительное двоичное число с запятой, расположенной перед старшим разрядом, имеет вид
N = + 0, cij о , . . . а 15)
где а; = 0 или 1. Значение этого числа равно
а!• 2"-1 + а, • 2~2 + • • • + а1:, ■2~15 .
Такое число хранится в машине в виде следующего кода:
0 |
|
а2 |
Оз |
«4 |
аъ |
"в |
а 7 |
|
|
Ою |
ап |
«12 |
013 |
«14 |
Ol5 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Отрицательное число
N — — 0, at а-2. •. а 1г,
хранится в машине в виде следующего кода:
1 й! а2 |
а3 |
а4 |
аь |
«0 |
а п |
ав |
о9 |
|
Ян |
d12 |
Okj |
Ol4 |
«15 |
||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Эти две последовательности нулей и единиц называются пря мыми кодами для представления положительною и отрицательного чисел. Прямой код двоичного числа будем обозначать через (N)av. Например, прямыми кодами чисел
375 |
473 |
|
N, |
|
и N 2 = — |
512 |
1024 |
|
являются коды |
|
|
(ДГ^пр = |
0101110111000000, |
|
(TV2)np = |
1011101100100000, |
— 186
так как
(0, 101110111)2 = |
1 -2 Г 1 |
+ 0 |
-2 ~ 2+ |
1 -2_3 + |
Ь 2~ 4+ |
1 .2~5 + |
|||
|
+ 0-2~ ь + 1-2—7 |
1 ’ 2i-8 |
|
375 |
|
|
|||
|
1 • 2~ м = ■ |
|
|
||||||
|
|
|
|
|
|
|
512 |
|
|
и |
|
|
|
|
|
|
|
|
|
(0,0111011001)2 = |
0• 2~1 4 |
1 -2~2 Н- 1 • 2—3 + |
I • 2' ■4 + |
0 .2~5+ |
|||||
|
|
|
|
|
|
|
473 |
|
|
+ 1 .2~ 6+ 1 -2 - 7 + 0-2 - 8 + 0-2- 9 + 1 ■2~10 = |
|
' |
|||||||
|
|
|
|
|
|
|
1024 |
||
Наряду с прямыми кодами отрицательных чисел будем рассмат |
|||||||||
ривать дополнительные и обратные коды этих чисел. |
|
Вместо |
|||||||
Рассмотрим |
пример замены вычитания |
сложением. |
|||||||
того, |
чтобы |
из |
числа |
34584764 |
вычитать число |
245182, |
|||
к числу |
34584764 прибавляется |
число |
99754818=1 00000000—245182 |
дополнительное к 245182 и от результата сложения 134339582 отни мается единица в старшем разряде. Получается число 34339582, ко торое является искомой разностью.
Аналогично составляется дополнительный код к прямому коду отрицательного числа. Дополнительный код двоичного числа будем обозначать (A,)fl0n-
Чтобы записать дополнительный код двоичного отрицательного
числа N нужно: |
|
|
|
|
1) |
записать единицу в знаковом разряде; |
|
||
2) |
цифровую часть числа N заменить дополнением модуля этого |
|||
числа до целой единицы, т. е. если |
N = —0, |
аи as, . . . , a n, где а(= 0 |
||
или 1, то прямой код этого числа будет |
|
|||
|
( Л 0 п р = |
••• а п , |
|
|
а дополнительный |
|
|
|
|
(ЛОдоп = Ibibi ... Ьп, |
где 0, |
... bn = |
1 — 0, ах а2 ■■■ап. |
|
Например, для числа |
|
|
|
|
|
N 2 = — |
473 |
|
|
|
= ( —0.0111011001)2 |
|||
|
|
1024 |
|
|
187
прямой код равен
(jV2)m) = |
1011101100100000, |
|
|
I____________ I |
|
|
дробная часть |
|
|
числа (JV2)np |
|
а дополнительный код |
|
|
(Л^доп = |
1100010011100000 , |
|
|
дробная часть |
|
|
числа |
( N t ) . |
так как |
|
' д о п |
|
0, 011101100100000. |
|
0 , 100010011100000= 1 — |
дополнение к дробной части числа ( N t )'доп
Покажем теперь, как можно алгебраическое сложение положи тельных и отрицательных чисел, записанных в двоичной системе, за менить сложением их прямых и дополнительных кодов.
Чтобы сделать алгебраическое сложение положительных и отри
цательных двоичных чисел, нужно |
положительные числа записать |
в прямом коде, а отрицательные — в |
дополнительном коде и сделать |
арифметическое суммирование этих кодов, включая знаковые разря ды. Если возникнет перенос единицы из знакового разряда, то эта единица отбрасывается. Положительный результат получается в пря мом коде (в этом случае в знаковом разряде результата стоит нуль), а отрицательный результат — в дополнительном (в этом случае в
знаковом разряде стоит единица). |
|
|
П р и м е р ы . |
473 |
|
375 |
■ . Вычислим 1У,+ Л12. |
|
1) Пусть A'i = — — и Nt = — |
, |
|
512 |
1024 |
|
Положительное число N\ записываем в прямом коде, а отрица |
||
тельное число N2 — в дополнительном: |
|
|
(Wi)np = 0101110111000000 и (Л72)доп = 11000010011100000, |
||
1 111 1 1 1 — единицы |
переноса; |
0101110111000000 + 1100010011100000 — слагаемые,
10010001010100000
Подчеркнутая единица является единицей переноса из знако вого разряда и поэтому откидывается. Таким образом, для суммы
—188 —
Л^1+ Д,2 получается следующий код: 0010001010100000. В знаковом разряде этого кода стоит нуль, поэтому он является прямым кодом положительного результата, т. е.
(А\ + N 2)nр = 0010001010100000,
значит
^ + ^ = |
(0,0100010101); |
277 |
||
1024 ' |
||||
|
|
|
||
Итак, |
375 |
473 |
277 |
|
|
||||
Лт, л - N „ = -------— ---------= |
--------- . |
|||
2 |
512 |
1024 |
1024 |
|
2) Пусть IV, = (0,10101010111)2 |
и ЛГ2= (0,1110101 )„. |
|||
Вычислим NI—N2. |
|
|
|
Обозначим через N2 число (—0,1110101)2, тогда нужно вычис
лить Ni + N2. Так как
( ^ ) 1ф = 0101010101110000
и
(Л+доп = 1000101100000000,
то
1111 1 — единицы переноса;
+01010101011100001000101100000000 — слагаемые
1110000001110000.
Таким образом, для разности (V,—N2 получаем следующий код: 1110000001110000. Так как в знаковом разряде стоит единица, то этот код является дополнительным кодом отрицательного результата, т. е.
(Л'х — Л+доп = 11Ю000001110000 ,
I____________ 1
дополнение к дробной части числа N i — N t
поэтому
Л’х — N 2 — (—0,00111111001)г,
189 —