
- •Содержание
- •Часть I. Арифметика в форматах с фиксированной точкой
- •1. Введение
- •Место и роль Арифметики цифровых вычислительных машин в современной науке
- •Предмет и предназначение настоящей книги
- •Рекомендации читателю
- •Раздел 2 достаточно просмотреть, быстро переворачивая страницы.
- •Позиционные системы счисления
- •Двоичная, восьмеричная, шестнадцатеричная и двоично-кодированные системы счисления
- •Преобразование чисел из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления и наоборот
- •Представление чисел в форматах с фиксированной точкой
- •Формат с фиксированной точкой
- •Свойства формата с фиксированной точкой
- •Ограниченный диапазон представления чисел
- •Точность действительного числа в формате и точность формата
- •Значимость числа и потеря значимости
- •Эффективность использования двоичного формата
- •Представление чисел в прямом, обратном и дополнительном кодах
- •Взаимное преобразование прямого, обратного и дополнительного кодов
- •Взаимное преобразование прямого и обратного кодов отрицательных чисел
- •Взаимное преобразование обратного и дополнительного кодов отрицательных чисел
- •Взаимное преобразование прямого и дополнительного кодов отрицательных чисел
- •Запись кода числа в формат с фиксированной точкой
- •Функции системы записи и исключительные ситуации
- •Округление действительных чисел
- •Округление кодов действительных чисел с записью в формат с фиксированной точкой
- •Округление прямого кода числа
- •Округление обратного и дополнительного кодов положительного числа
- •Округление обратного кода отрицательного числа
- •Округление дополнительного кода отрицательного числа
- •Арифметические операции в форматах с фиксированной точкой
- •Операция пересылки
- •Операция изменения знака
- •Операции алгебраического сложения и вычитания
- •Сложение в дополнительном коде
- •Вычитание в дополнительном коде
- •Особенности сложения и вычитания в дополнительном коде
- •Сложение в обратном коде
- •Вычитание в обратном коде
- •Особенности сложения и вычитания в обратном коде
- •Взаимная замена операций вычитания и сложения
- •Сложение и вычитание в прямом коде
- •Операция алгебраического умножения
- •Умножение в прямом коде
- •Умножение в дополнительном коде
- •Умножение с преобразованием операндов в прямой код и произведения в дополнительный
- •Умножение дополнительного кода множимого на модуль множителя
- •Умножение дополнительного кода множимого на дополнительный код множителя
- •Умножение множимого в традиционной двоичной системе на множитель, представленный в двоичной системе счисления с алфавитом
- •Умножение дополнительных кодов с заменой знакового разряда множителя 1 на
- •Преобразование множителя с заменой цепочек единиц нулями
- •Преобразование множителя с сокращением вдвое верхней оценки количества единиц
- •Умножение на два разряда с переносом 1 в очередную двойку разрядов множителя
- •Умножение на два разряда с преобразованием множителя заменой цепочек единиц нулями
- •Умножение на два разряда множителя с увеличенным количеством нулевых частных произведений
- •Изменение операции над частным произведением
- •Вычисление частного произведения с требуемым знаком
- •Сокращение матриц дополнительных кодов частных произведений
- •Табличный способ умножения
- •Умножение чисел большой разрядности
- •Операции алгебраического деления и вычисления остатка
- •Математические основы некоторых способов деления двоичных чисел
- •Деление двоичных чисел в прямом коде
- •Деление с восстановлением остатка
- •Деление без восстановления остатка
- •Деление с вычислением очередного сдвинутого влево остатка
- •Деление без записи очередного остатка на место предыдущего
- •Деление двоичных чисел в дополнительном коде
- •Деление нормализованных двоичных чисел
- •Некоторые способы ускорения деления
- •Операция сравнение
- •Выполнение операций в двоично-десятичной системе счисления
- •Вычисление двоично-десятичного кода обратной десятичной цифры
- •Взаимные преобразования прямого, обратного и дополнительного кода двоично-десятичного числа
- •Изменение знака двоично-десятичных чисел
- •Сложение двоично-десятичных чисел
- •Сложение в двоично-десятичной системе 8421
- •Вычитание двоично-десятичных чисел
- •Литература
Арифметические операции в форматах с фиксированной точкой
В ЭВМ арифметические операции над кодами чисел выполняет система арифметических операций (арифметическое устройство и/или программа), которая получает от пользователя (программы или устройства являющегося пользователем) задание на выполнение определенной операции. Задание содержит указание источников операндов и приемника результатов (возможно, их адреса или непосредственно операнды), тип форматов, способ округления результата, разрешение на прерывание и возможно иную дополнительную информацию. Основная функция системы арифметических операций состоит в вычислении результата выполнения операции, в информировании пользователя о не успешном выполнении операции, в передаче задания системе Записи (раздел 3.3) при успешном выполнении операции.
В ЭВМ обычно применяется множество различных форматов с фиксированной и/или плавающей точкой, в которых могут быть записаны целые или действительные числа в различных системах счисления и кодах, или не числа. Операнды могут быть целыми или действительными числами, а иногда комплексными числами или многомерными векторами. Состав арифметических операций выполняемых системой может быть весьма ограниченным или очень обширным. Обычно всегда выполняются операции сложения, вычитания, сравнения возможно умножения, деления, а в некоторых случаях операции извлечения корня квадратного, вычисления логарифмов, тригонометрических функций, умножения и сложения векторов и т.п. Все это зависит от назначения ЭВМ и определяется ее конструктором.
В основу построения системы арифметических операций кладутся правила их выполнения.
В настоящем разделе рассмотрены некоторые правила выполнения основных арифметических операций точно над числами в системах счисления с основанием 2, 8, 10 16 представленными в прямом, обратном или дополнительном коде в форматах с фиксированной точкой не обязательно с идентичными полями и одинаковой длиной форматов. Точный результат выполнения операции может иметь формат, отличающийся от форматов операндов и результата. Предполагается, что запись точного результата в формат результата выполняется системой Записи рассмотренной в разделе 3.3.
Некоторые операции
не позволяют при некоторых значениях
операндов вычислять результат точно.
Например, в десятичной системе счисления
нельзя вычислить точно частное от
деления 1 на 3 или значение
.
В настоящем разделе рассматриваются
правила вычисления в подобных ситуациях
не точного результата и дополнительной
информации достаточной для округления
результата до значения, которое было
бы получено при округлении точного
результата.
Конечно, правила выполнения операций могут быть иными. Ничто и никто не мешает изобретать новые правила эквивалентные изложенным по результату, имеющие преимущества в конкретных применениях. Автор преследует цель познакомить читателя с решениями, которые могут быть приняты за основу в его творческом поиске, и акцентировать внимание читателя на некоторых тонкостях, которыми часто пренебрегают или не замечают, что приводит к неправильному функционированию спроектированной системы при некоторых значениях операндов.
При выполнении арифметических операций возможны исключительные ситуации невыполнимая операция и деление на ноль.
Исключительная ситуация невыполнимая операция складывается, если один или оба операнда не определены, не являются числами, делимое и делитель равны нулю или операндом операции вычисления логарифма является отрицательное число. Разумеется, что список ситуаций, при которых некоторые операции невыполнимы, можно продолжить.
Исключительная ситуация деление на ноль складывается, если делимое не равно нулю, а делитель равен нулю.
Система, выполняющая операции, контролирует операнды и в исключительной ситуации устанавливает соответствующий флажок в 1 и формирует сигнал прерывания. Действия пользователя подобны выполняемым им в исключительных ситуациях, складывающихся при записи числа в формат (раздел 3.3).