- •Компьютерная арифметика и алгоритмическое моделирование арифметических операций
- •Введение
- •Глава 4, подготовленная доцентом о.П. Шафеевой, посвящена вопросам разработки алгоритмических моделей выполнения арифметических операций и моделирования на пэвм спроектированных алгоритмов.
- •Основы двоичной компьютерной арифметики
- •1.1. Позиционные системы счисления
- •Десятичная позиционная система счисления
- •Двоичная позиционная система счисления
- •1.1.3. Восьмеричная позиционная система счисления
- •1.1.4. Шестнадцатеричная позиционная система счисления
- •Перевод чисел из одной позиционной системы счисления в другую
- •1.2.1. Перевод целых чисел
- •1.2.2. Перевод правильных дробей
- •1.2.3. Перевод неправильных дробей из одной системы счисления в другую
- •1.2.4. Частный случай перевода чисел из одной системы счисления в другую
- •1.2.5. Перевод чисел из одной системы счисления в другую с использованием промежуточной двоично-десятичной системы
- •1.3. Представление чисел с фиксированной запятой (точкой)
- •1.4. Представление чисел с плавающей запятой (точкой)
- •1.5. Коды двоичных чисел
- •1.5.1. Прямой код
- •1.5.2. Обратный код
- •1.5.3. Модифицированный обратный код
- •1.5.4. Дополнительный код
- •1.5.5. Модифицированный дополнительный код
- •2. Выполнение арифметических операций с двоичными числами
- •2.1. Сложение (вычитание) двоичных чисел с фиксированной запятой
- •2.1.1. Алгебраическое сложение чисел в дополнительном коде
- •2.1.2. Алгебраическое сложение чисел в обратном коде
- •2.1.3. Переполнение разрядной сетки при сложении чисел
- •2.2. Сложение (вычитание) двоичных чисел с плавающей запятой
- •2.2.1. Метод ускоренного сложения двоичных чисел с запоминанием переносов
- •2.3. Умножение двоичных чисел с фиксированной запятой
- •2.4. Машинные технологии выполнения операции умножения двоичных чисел с фиксированной запятой
- •2.5. Умножение двоичных чисел с плавающей запятой
- •2.6. Методы ускоренного выполнения операции умножения двоичных чисел
- •2.6.1. Метод пропуска такта суммирования
- •2.6.2. Метод анализа сомножителей
- •2.6.3. Метод расшифровки и одновременного умножения на два разряда множителя
- •2.6.4. Метод ускоренного умножения Мак-Сорли
- •2.6.5. Метод ускоренного умножения Лемана
- •2.6.6. Метод умножения с расшифровкой пар разрядов множителя и запоминанием переносов
- •2.7. Деление двоичных чисел с фиксированной запятой
- •2.8. Деление двоичных чисел с плавающей запятой
- •3. Основы десятичной компьютерной арифметики
- •3.1. Машинное кодирование десятичных чисел
- •3.2. Выполнение арифметических операций с десятичными числами
- •3.2.1. Сложение десятичных чисел в эвм
- •3.2.2. Умножение десятичных чисел в эвм
- •3.2.3. Ускорение умножения в -кодах
- •Деление десятичных чисел в эвм
- •4. Алгоритмические модели выполнения арифметических операций
- •4.1. Проектирование универсального алгоритма перевода чисел в разные системы счисления
- •4.2. Моделирование алгоритма сложения двоичных чисел
- •Различные случаи ненормализованных мантисс
- •4.3. Проектирование алгоритма умножения чисел
- •4.5. Проектирование алгоритма деления чисел
- •4.7. Разработка алгоритма вычисления квадратного корня
- •Компьютерная арифметика и алгоритмическое моделирование арифметических операций
1.1.3. Восьмеричная позиционная система счисления
В восьмеричной позиционной системе счисления для записи всевозможных чисел используются восемь различных цифр: 0, 1, 2, 3, 4, 5, 6, 7. Основание системы счисления (число восемь) записывается уже двумя цифрами . Остальные любые числа представляются в виде последовательности восьмеричных цифр, разделенных запятой на целую и дробную часть.
Например, приведенное выше число двести пятьдесят семь целых семьдесят пять сотых, которое в десятичной системе имеет изображение 257,75, в восьмеричной системе будет записано следующим образом: (здесь 10 означает восемь), и все операции должны выполняться в восьмеричной системе счисления.
Правильность восьмеричного изображения числа двести пятьдесят семь целых семьдесят пять сотых легко проверить, переписав правую часть последнего равенства в десятичной системе счисления и произведя в этой системе соответствующие арифметические операции. Проделав все это, получим
.
Сложение и вычитание восьмеричных чисел производится по тем же правилам, по которым эти действия выполняются в десятичной системе счисления. Однако при этом следует использовать восьмеричную таблицу сложения – вычитания (табл. 1.4).
Таблица 1.4
Восьмеричная таблица сложения – вычитания
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
2 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
3 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
4 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
5 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
6 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
7 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
10 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
В верхней строке и левом столбце таблицы записаны восьмеричные слагаемые. Восьмеричная сумма находится в ячейке на пересечении соответствующего столбца и строки.
При выполнении операции вычитания уменьшаемое находят на соответствующей диагонали таблицы, вычитаемое – на верхней строке (в левом столбце), а восьмеричную разность находят по методу пересечения в левом столбце (верхней строке) табл. 1.4.
Используя данную таблицу, легко выполнить операции сложения и вычитания многоразрядных восьмеричных чисел.
Пример:
Сложение Вычитание
215,76 165,34
+ 46,53 - 27,56
264,51 135,56
Восьмеричная таблица умножения может быть представлена следующим образом (табл. 1.5).
Таблица 1.5
Восьмеричная таблица умножения
Х |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
2 |
0 |
2 |
4 |
6 |
10 |
12 |
14 |
16 |
20 |
3 |
0 |
3 |
6 |
11 |
14 |
17 |
22 |
25 |
30 |
4 |
0 |
4 |
10 |
14 |
20 |
24 |
30 |
34 |
40 |
5 |
0 |
5 |
12 |
17 |
24 |
31 |
36 |
43 |
50 |
6 |
0 |
6 |
14 |
22 |
30 |
36 |
44 |
52 |
60 |
7 |
0 |
7 |
16 |
25 |
34 |
43 |
52 |
61 |
70 |
10 |
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
100 |
Правило получения произведения двух одноразрядных восьмеричных чисел по этой таблице аналогично правилу получения суммы по восьмеричной таблице сложения.
С помощью восьмеричной таблицы умножения и сложения, пользуясь теми же правилами, которые применяются в десятичной системе счисления, производятся умножение и деление восьмеричных многоразрядных чисел.
Пример:
Умножение Деление
5271
1
х
–
52,71 5271 146,32
–
+
–
100002 40126
–
20053
–
12562
00000