Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОДЕРЖАНИЕ 3 (2).doc
Скачиваний:
40
Добавлен:
31.08.2019
Размер:
5.65 Mб
Скачать
  1. Арифметические операции в форматах с фиксированной точкой

В ЭВМ арифметические операции над кодами чисел выполняет система арифметических операций (арифметическое устройство и/или программа), которая получает от пользователя (программы или устройства являющегося пользователем) задание на выполнение определенной операции. Задание содержит указание источников операндов и приемника результатов (возможно, их адреса или непосредственно операнды), тип форматов, способ округления результата, разрешение на прерывание и возможно иную дополнительную информацию. Основная функция системы арифметических операций состоит в вычислении результата выполнения операции, в информировании пользователя о не успешном выполнении операции, в передаче задания системе Записи (раздел 3.3) при успешном выполнении операции.

В ЭВМ обычно применяется множество различных форматов с фиксированной и/или плавающей точкой, в которых могут быть записаны целые или действительные числа в различных системах счисления и кодах, или не числа. Операнды могут быть целыми или действительными числами, а иногда комплексными числами или многомерными векторами. Состав арифметических операций выполняемых системой может быть весьма ограниченным или очень обширным. Обычно всегда выполняются операции сложения, вычитания, сравнения возможно умножения, деления, а в некоторых случаях операции извлечения корня квадратного, вычисления логарифмов, тригонометрических функций, умножения и сложения векторов и т.п. Все это зависит от назначения ЭВМ и определяется ее конструктором.

В основу построения системы арифметических операций кладутся правила их выполнения.

В настоящем разделе рассмотрены некоторые правила выполнения основных арифметических операций точно над числами в системах счисления с основанием 2, 8, 10 16 представленными в прямом, обратном или дополнительном коде в форматах с фиксированной точкой не обязательно с идентичными полями и одинаковой длиной форматов. Точный результат выполнения операции может иметь формат, отличающийся от форматов операндов и результата. Предполагается, что запись точного результата в формат результата выполняется системой Записи рассмотренной в разделе 3.3.

Некоторые операции не позволяют при некоторых значениях операндов вычислять результат точно. Например, в десятичной системе счисления нельзя вычислить точно частное от деления 1 на 3 или значение . В настоящем разделе рассматриваются правила вычисления в подобных ситуациях не точного результата и дополнительной информации достаточной для округления результата до значения, которое было бы получено при округлении точного результата.

Конечно, правила выполнения операций могут быть иными. Ничто и никто не мешает изобретать новые правила эквивалентные изложенным по результату, имеющие преимущества в конкретных применениях. Автор преследует цель познакомить читателя с решениями, которые могут быть приняты за основу в его творческом поиске, и акцентировать внимание читателя на некоторых тонкостях, которыми часто пренебрегают или не замечают, что приводит к неправильному функционированию спроектированной системы при некоторых значениях операндов.

При выполнении арифметических операций возможны исключительные ситуации невыполнимая операция и деление на ноль.

Исключительная ситуация невыполнимая операция складывается, если один или оба операнда не определены, не являются числами, делимое и делитель равны нулю или операндом операции вычисления логарифма является отрицательное число. Разумеется, что список ситуаций, при которых некоторые операции невыполнимы, можно продолжить.

Исключительная ситуация деление на ноль складывается, если делимое не равно нулю, а делитель равен нулю.

Система, выполняющая операции, контролирует операнды и в исключительной ситуации устанавливает соответствующий флажок в 1 и формирует сигнал прерывания. Действия пользователя подобны выполняемым им в исключительных ситуациях, складывающихся при записи числа в формат (раздел 3.3).