- •1. Место информатики во множестве наук
- •2. Понятие об информации
- •Рассмотрим ещё одно определение понятия «информация».
- •3. Информационные процессы
- •4. Свойства информации
- •5. Операции над данными
- •6. Условия, обеспечивающие передачу информации (данных) от одного человека другому человеку и от одного поколения человечества другому поколению.
- •7. Язык
- •7.1. Типы языков
- •7.2. Стадии эволюции естественного языка:
- •7.3. Элементы языка
- •7.4. Знания
- •7.5. Некоторые особенности естественных языков
- •7.6. Некоторые особенности простых языков
- •8. Количественное измерение информации
- •9. Системы счисления
- •9.1. Основные определения
- •9.2. Непозиционные системы счисления
- •9.3. Позиционные системы счисления
- •Запись целых чисел в различных системах счисления
- •9.4. Выполнение арифметических операций в позиционных системах счисления
- •Операция «сложение»
- •Операция «вычитание»
- •Операция «умножение»
- •9.5. Преобразование кодов чисел из одной системы счисления в другую
- •9.5.1. Преобразование целой части числа
- •9.5.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.