- •Компьютерная арифметика и алгоритмическое моделирование арифметических операций
- •Введение
- •Глава 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. Разработка алгоритма вычисления квадратного корня
- •Компьютерная арифметика и алгоритмическое моделирование арифметических операций
Введение
В учебных планах подготовки бакалавров и дипломированных специалистов по направлению 230100 (654600) «Информатика и вычислительная техника» и по специальности 230101 (220100) «Вычислительные машины, комплексы, системы и сети» дисциплины «Дискретная математика», «Введение в информатику и вычислительную технику», «Алгоритмические языки и программирование» входят в состав фундаментального цикла дисциплин, формирующих у студентов представление о базовых понятиях информатики и вычислительной техники как о предмете их дальнейшей профессиональной деятельности. Изучение указанных дисциплин и овладение навыками разработки и моделирования алгоритмов реализации арифметических и логических компьютерных операций создают теоретическую базу для изложения таких дисциплин, как «Теория автоматов», «Организация ЭВМ и систем», «Микропроцессорные системы» и других специальных курсов.
Данное учебное пособие является вводным курсом в изучении информатики и вычислительной техники и посвящено рассмотрению фундаментальных основ компьютерной арифметики.
В главах 1, 2, 3, подготовленных профессором В.И. Потаповым, изложены основы двоичной и десятичной компьютерной арифметики, алгоритмы выполнения арифметических операций в ЭВМ для двоичных чисел с фиксированной и плавающей запятой (точкой) и для двоично-десятичных чисел в D-кодах. Рассмотрены многочисленные методы ускоренного выполнения арифметических операций в ЭВМ в двоичной и в двоично-десятичной системе счисления.
Глава 4, подготовленная доцентом о.П. Шафеевой, посвящена вопросам разработки алгоритмических моделей выполнения арифметических операций и моделирования на пэвм спроектированных алгоритмов.
При описании компьютерных технологий выполнения операций умножения и деления в учебном пособии используются такие понятия, как «триггер», «регистр», «счетчик», «сумматор». Однако с этими понятиями студенты еще не знакомы. Поэтому представляется целесообразным во введении в краткой форме раскрыть данные понятия на описательном уровне, указав их назначение в ЭВМ и функциональные возможности.
Триггер – элемент памяти, имеющий два устойчивых состояния, предназначенный для приема и хранения одного бита (одной двоичной единицы) информации и выдачи этой информации в другие устройства в прямом или обратном коде. Триггер в зависимости от типа и назначения имеет один, два или три входа и два выхода – прямой и инверсный.
Регистр – функциональное устройство ЭВМ, представляющее собой совокупность триггеров, число которых соответствует количеству разрядов регистра, и вспомогательных (как правило, логических) схем, обеспечивающих в общем случае выполнение следующих операций:
- установку регистра в нуль («сброс»);
- прием двоичного числа из других устройств (регистра, сумматора,
запоминающего устройства и т.д.);
- передачу двоичного числа в другие устройства (в регистр, в
сумматор, в запоминающее устройство и т.д.);
- преобразование двоичного числа из прямого кода в обратный и
наоборот;
- сдвиг двоичного числа вправо или влево на требуемое число
разрядов;
- преобразование последовательного кода двоичного числа в
параллельный и наоборот;
- выполнение поразрядных логических операций.
Счетчик – типовой узел ЭВМ, состоящий из нескольких триггеров в соответствии с числом разрядов счетчика, соединенных между собой таким образом, что выполняется операция счета единичных входных сигналов. Счетчики бывают суммирующие, вычитающие и реверсивные. По основанию системы счисления счетчики делятся на двоичные и десятичные. Возможно построение счетчиков по любому модулю пересчета.
Сумматор – узел ЭВМ, выполняющий арифметическое суммирование кодов чисел, представляющий собой комбинацию одноразрядных суммирующих схем. Сумматоры бывают комбинационные (без памяти) и запоминающие (с памятью). Количество разрядов сумматора определяется числом разрядов обрабатываемых чисел (операндов).
При сложении двух чисел независимо от системы счисления в каждом разряде производится сложение трех цифр: цифры данного разряда первого слагаемого, цифры данного разряда второго слагаемого и цифры (единица или нуль) переноса из соседнего младшего разряда. В результате сложения для каждого разряда получается цифра суммы для этого разряда и цифра (единица или нуль) переноса в следующий разряд.