- •Основы компьютерной арифметики и логики
- •Предисловие
- •Глава 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. Дополнительный код
- •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.2. Моделирование алгоритма сложения двоичных чисел
- •Различные случаи ненормализованных мантисс
- •4.3. Проектирование алгоритма умножения чисел
- •4.5. Проектирование алгоритма деления чисел
- •4.7. Разработка алгоритма вычисления квадратного корня
- •Определение 1. Пусть и произвольные множества. Соответствием называется тройка множеств
- •Свойства отношений
- •Эквивалентность
- •Толерантность
- •Отношения порядка
- •Самодвойственные функции
- •Монотонные функции
- •Линейные функции
- •Функции, сохраняющие константу
- •5.2.7. Минимизация булевых функций
- •Метод Блейка
- •Метод Квайна-Мак-Класки
- •Минимизация с использованием карт Карно
- •Дана функция четырех переменных (рис. 5.13):
- •Минимизация не полностью определенных булевых функций
- •Минимизация систем булевых функций
- •5.3. Методика синтеза комбинационных схем на логических элементах
- •5.3.1. Логические элементы
- •5.3.2. Общий алгоритм построения комбинационных схем
- •5.3.3. Синтез кс в классическом базисе
- •5.3.4. Синтез кс в базисах «и-не», «или-не»
- •5.3.5. Реализация кс в базисе Жегалкина
- •5.3.6. Синтез составных кс
- •Заключение
- •Библиографический список к главам 1, 2, 3, 4
- •Библиографический список к главе 5
1.2.3. Перевод неправильных дробей из одной системы счисления в другую
Если число - неправильная дробь, то в этом случае отдельно переводят целую часть числа и отдельно его дробную часть по изложенным выше правилам. Второй результат приписывают справа к первому, разделив их запятой.
Пример.
Перевести десятичное число 75,364 в двоичную систему счисления, т.е.
75,364(10) (2).
Перевод целой части: Перевод дробной части:
Операция Частное Остаток Операция Целая Дробная
часть часть
75 : 2 = 37 + 1 0,364 х 2 = 0, 728
37 : 2 = 18 + 1 0,728 х 2 = 1, 456
18 : 2 = 9 + 0 0,456 х 2 = 0, 912
9 : 2 = 4 + 1 0,912 х 2 = 1, 824
4 : 2 = 2 + 0 0,824 х 2 = 1, 648
2 : 2 = 1 + 0 0,648 х 2 = 1, 296
1 и т.д.
Результат перевода неправильной дроби с точностью :
75,364(10)=1001011,010111(2).
1.2.4. Частный случай перевода чисел из одной системы счисления в другую
Особенно просто перевод чисел из одной системы счисления в другую осуществляется для таких систем, у которых основание одной системы является целой степенью основания другой системы. Выше были рассмотрены две такие системы: двоичная и восьмеричная, у которых соотношения оснований , и двоичная и шестнадцатеричная, у которых соотношения оснований .
Пусть и - соответственно основания двух позиционных систем счисления, причем (- целые числа). Требуется перевести число из -ичной системы в -ичную систему и, наоборот, из -ичной в -ичную систему счисления.
Правила перевода. Для перевода произвольного числа из -ичной системы в -ичную необходимо каждую цифру числа в -ичной системе заменить ее
- значным изображением в -ичной системе счисления.
Для перевода произвольного числа (в общем случае неправильной дроби) из -ичной системы счисления в -ичную необходимо цифры числа слева и справа от запятой разбить на группы по цифр в каждой, дополнив, если это необходимо, крайнюю левую и крайнюю правую группы нулями до цифр в группе и заменив каждую такую - значную группу цифрой в -ичной системе счисления.
Изложенные правила поясним на примерах перевода чисел из восьмеричной системы счисления в двоичную и обратно.
Основание восьмеричной системы . Основание двоичной системы . Откуда следует, что , т.е. .
Таким образом, для перевода произвольного восьмеричного числа в двоичную систему счисления следует каждую восьмеричную цифру заменить соответствующим ей трехзначным двоичным числом.
Пример.
Восьмеричное число равно двоичному числу , т.к. 7=111, 4=100, 3=011, 5=101, 6=110, 1=001.
Для перевода произвольного двоичного числа в восьмеричное систему счисления необходимо, начиная от запятой, разделяющей число на целую и дробную части, влево и вправо от нее разбить набор двоичных цифр, изображающих двоичное число, на тройки цифр. Каждое полученное трехзначное двоичное число отдельно перевести в восьмеричную систему счисления. Если правая и левая группы цифр будут не полными тройками, то их следует дополнить соответственно справа и слева нулями.
Пример.
Двоичное число после дополнения его справа и слева нулями до полных троек имеет вид: (001) (101) (110), (011) (111) (010). Эта запись равна восьмеричному числу .
Аналогичные преобразования справедливы для перевода двоичных чисел в шестнадцатеричные и наоборот.
Пример.
Двоичное число после разбивки его на тетрады слева и справа от запятой принимает вид: (1110) (1101) (1001), (1100) (0111) (1111). Эта запись равна шестнадцатеричному числу .
Пример.
Шестнадцатеричное число в двоичной системе имеет следующий вид: .
Для перевода чисел из восьмеричной системы с счисления в шестнадцатеричную и наоборот необходимо использовать в качестве промежуточной двоичную систему счисления.