Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_lesson.docx
Скачиваний:
3
Добавлен:
06.05.2019
Размер:
707.2 Кб
Скачать

9.4. Выполнение арифметических операций в позиционных системах счисления

Рассмотрим на примерах следующие арифметические операции: сложение, вычитание, умножение. Для каждой операции в первом примере будет рассматриваться 10-ичная система счисления.

Операция «сложение»

Пример 1. Сложить число 658738110 с числом 546171610 (Рис. 9.4.1.).

Номер строки таблицы

Пояснения

Номер разряда

7

6

5

4

3

2

1

0

1

Обозначение кода числа А

a7

a6

a5

a4

a3

a2

a1

a0

2

Обозначение кода числа B

b7

b6

b5

b4

b3

b2

b1

b0

3

Код числа А

6

5

8

7

3

8

1

4

Код числа B

5

4

6

1

7

1

6

5

Поразрядные суммы цифр каждого слагаемого

Si =(ai+bi)

11

9

14

8

10

9

7

6

Результат уменьшения поразрядных сумм Si>=p, которые равны или больше основания системы [(ai+bi)-p]

1

4

0

7

Первичный перенос из предыдущего разряда в последующий

1

1

1

8

Поразрядные суммы цифр с учётом первичного переноса

1

10

9

9

Результат уменьшения поразрядных сумм, полученных с учётом первичных переносов

0

10

Вторичный перенос из предыдущего разряда в последующий (при добавлении первичного переноса)

1

11

Результат операции «сложение» ri

1

2

0

4

9

0

9

7

Рис. 9.4.1.

Операция «сложение» реализуется в несколько этапов.

1 этап. Определяются поразрядные суммы - суммируются цифры в каждом разряде: Si = ai+bi (строка 5).

2 этап. В тех разрядах, в которых поразрядная сумма Si оказывается не цифрой, а числом, т.е. Si=ai+bi >= p, цифра результата определяется вычитанием основания системы: ri=ai+bi – p (строка 6). Одновременно возникшая 1 переноса Пi «переходит» в последующий разряд i+1 (строка 7).

3 этап. Единицы переноса суммируются с поразрядными суммами Пi+Si+1 (строка 8).

4 этап. Этот этап аналогичен 2-му этапу. Если Пi+Si+1 >=p, то происходит вычитание основания системы: Пi+Si+1– p (строка 9). Одновременно возникшая 1 переноса Пi+1 «переходит» в последующий разряд i+2 (строка 10).

Мы привыкли к 10-ичной системе счисления и выполняем в ней операции, «не задумываясь». Удобство 10-ичной системы счисления состоит не только в том, что мы работаем в ней с детства. Если разрядная сумма больше или равна 1010, то в качестве цифры результата мы используем младшую цифру разрядной суммы, не проводя вычитание. Посмотрите на таблицу (Рис. 9.4.2.).

Цифра первого слагаемого

ai

4

9

7

5

7

8

8

9

9

Цифра второго слагаемого

bi

6

2

5

8

7

7

8

8

9

Первичная поразрядная сумма

Si=ai+ bi >=10

10

11

12

13

14

15

16

17

18

Цифра результата

0

1

2

3

4

5

6

7

8

Рис. 9.4.2.

В первых двух строках значения цифр взяты для примера. Вместо, 7+5=12 можно рассматривать 8+4=9+3=6+6=12. Подчёркнутые цифры подтверждают вышеприведённое утверждение.

Операция «сложение» над кодами чисел в других системах счисления выполняется аналогичным образом. Однако есть особенность. Рассматривая нижеприведённые примеры, обратите внимание на эту особенность. В какой бы системе счисления (кроме десятичной) мы ни проводили операцию «сложение», суммирование мы проводим в десятичной системе счисления. Но сравнивать каждую поразрядную сумму мы должны с конкретным основанием системы счисления. Мы не можем в качестве цифры результата использовать младшую цифру суммы, а должны проводить вычитание, используя представление этого основания в десятичной системе счисления.

Чтобы выполнить любую операцию, необходимо представить процесс её выполнения в виде последовательности действий. Последовательность действий запишем на формальном языке PDL (Program Design Language) – языке проектирования программ. В дальнейшем мы будем более подробно рассматривать этот язык. Однако он достаточно простой, и запись действий на этом языке должна быть понятной, тем более, что к каждому оператору языка (действию) даётся комментарий.

Необходимо провести операцию «сложение» над двумя числами: A=anan-1an-2… a2a1a0 и B= bnbn-1bn-2… b2b1b0 в системе счисления с основанием р и получить сумму С= cn+1cncn-1cn-2… c2c1c0 (Рис. 9.4.3.).

Получите результаты представленных ниже примеров на операцию «сложение», читая и выполняя каждое действие в указанной таблице.

Номер оператора

Текст оператора

Комментарий

1

Ввести значение n

Задать значение количества разрядов, которыми представлены 2 слагаемых.

2

П=0

Установить начальное значение переноса из разряда в разряд

3

For i=0 to n

Оператор цикла, который устанавливает количество повторений тех действий (операторов), которые записаны между этим оператором и оператором Next. В данном случае переменная i обозначает текущее значение номера разряда от 0 до n (смотри коды чисел)

4

Si=ai+bi+П;

Определение разрядной суммы

5

If Si>=p Then

Условный оператор, когда выполняются различные действия в зависимости от результата проверки условия. Если разрядная сумма равна или больше р, то

ci=Si-p; П=1;

определяется разрядная сумма и переменной «Перенос» присваивается значение «1».

If i=n Then

Если сумма цифр в старшем разряде равна или больше р,

ci+1= 1

то должна появиться 1 в следующем разряде

Endif

6

else

Иначе (разрядная сумма меньше р), разрядная сумма определяется иным способом, и переменной «Перенос» присваивается значение «0».

ci=Si; П=0;

7

Endif

Оператор конца условного оператора, который показывает, что все действия условного оператора записаны.

8

Next

Оператор конца цикла, который показывает, что все повторяющиеся действия оператора цикла For записаны.

9

Print C

Печатать значение суммы двух чисел

Рис. 9.4.3.

Пример 2. Сложить 2 числа 262,510 и 38,7510 в 10-ичной системе счисления (Рис. 9.4.4.).

Записи типа «5+7=12=10+2» в схеме примера имеют следующий смысл. Если при суммировании двух цифр получено число Si >=p, то Si= p+ri и П=1, где r –цифра разрядного результата.

Рис. 9.4.4.

Пример 3. Сложить 2 числа 10000110,12 и 100110,112 в 2-ичной системе счисления (Рис. 9.4.5.).

Рис. 9.4.5.

Пример 4. Сложить 2 числа 406,48 и 46,68 в 8-ичной системе счисления (Рис. 9.4.6.).

Рис. 9.4.6.

Пример 5 . Сложить 2 числа 106,816 и 26,1216 в 16-ичной системе счисления (Рис. 9.4.7.).

Рис. 9.4.7.