Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов

.pdf
Скачиваний:
19
Добавлен:
29.10.2023
Размер:
7.59 Mб
Скачать

Т а б л и ц а 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 =

02~1 4

1 -2~2 Н- 1 23 +

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 )„.

Вычислим NIN2.

 

 

 

Обозначим через 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

Соседние файлы в папке книги из ГПНТБ