Принципы выполнения арифметических операций над числами в форме с плавающей точкой, Сложение и вычитание чисел в форме с плавающей точкой - Компьютерная арифметика
Пусть требуется выполнить некоторую арифметическую операцию над операндами X и Y в форме с плавающей точкой:
. (5.12)
. (5.13)
Результатом операции будет число:
. (5.14)
Порядки чисел X и Y представлены p разрядами, а мантиссы - (m-разрядные) правильные дроби, то есть,
, . (5.15)
Сложение и вычитание чисел в форме с плавающей точкой
Представим операцию сложения в виде:
Z = X + Y. (5.16)
Пусть Рх > Py, тогда:
. (5.17)
Где
.
. (5.18)
Где
; .
Операция сложения и вычитания операндов в форме с плавающей точкой включает следующие этапы:
- - выравнивание порядков операндов и определение порядка результата; - сложение и вычитание мантисс; - нормализация результата; - округление результата.
Выравнивание порядков необходимо для того, чтобы цифры мантисс с определенными весами располагались в соответствующих им разрядах регистров. Выполняется такая операция путем сдвига вправо мантиссы того операнда, порядок которого меньше. (Не выравнивать в сторону меньшего порядка! -- теряем значащие цифры). Алгоритм выравнивания порядков сводится к следующему:
- сформировать разность порядков
.
- - если >0, то сдвинуть на один разряд вправо мантиссу (Y) и вычесть единицу из разности порядков( ); если - пункт 2 алгоритма повторять до тех пор, пока выполняется неравенство ?0; при =0 выравнивание порядков считают законченным.
Так как порядки операндов могут иметь разные знаки, то для представления их разности () может понадобиться (p+1) разряд. Абсолютная величина () может превышать число разрядов (m), отводимых для представления мантисс. В этом случае все разряды сдвигаемой вправо мантиссы выходят за пределы разрядной сетки и далее, при сложении и вычитании мантисс, абсолютная величина мантиссы, которая оставалась неподвижной, не меняется. Следовательно, при выполнении условия ||>m можно прекратить выравнивание порядков и присвоить окончательному результату значение операнда, мантисса которого не сдвигалась.
Определять порядок результата удобно вместе с выравниванием порядков операндов. Порядок результата равен порядку большего по абсолютной величине операнда (то есть, того, мантисса которого не сдвигалась при выравнивании порядков).
Сложение и вычитание мантисс, для представления которых обычно используется прямой код, выполняется по тем же алгоритмам, что и чисел в форме с фиксированной точкой. Однако переполнение разрядной сетки здесь не приводит к остановке вычислений, что, как правило, имеет место при выполнении операций над числами в форме с фиксированной точкой. Наличие переполнения учитывается далее при нормализации результата.
Поскольку при выравнивании порядков возможна потеря части разрядов мантиссы одного из операндов, то мантисса результата может быть получена с погрешностью, по абсолютной величине почти равной единице младшего разряда. Однако среднее значение погрешности при этом равно нулю, если считать, что знаки "+" и "-" операндов и заданных операций появляются с равными вероятностями. С целью уменьшения максимальной абсолютной величины этой погрешности может быть введена операция округления мантиссы результата.
Необходимость нормализации результата обусловлена тем, что при мантиссах операндов, удовлетворяющих условиям нормализации, в зависимости от знака операции, мантисса результата может находиться в пределах 0?|z|<2.
Таким образом, при сложении и вычитании мантисс может произойти нарушение нормализации мантиссы результата на один разряд влево или на произвольное число разрядов вправо. Нормализация результата выполняется следующим образом:
- если 1?|z|<2 (нормализация нарушена влево), то сдвинуть мантиссу результата на один разряд вправо и прибавить единицу к порядку результата.
При этом может возникнуть переполнение порядков.
- при сложении мантисс близких по модулю друг к другу, но имеющих разные знаки может возникнуть нарушение нормализации вправо на любое число разрядов (вплоть до получения нулевой мантиссы).
Если 0<|z|<1/2, то сдвинуть мантиссу влево и вычесть единицу из порядка результата. Эти действия продолжать до тех пор, пока сохраняются условия указанного выше неравенства (если мантисса результата представлена прямым кодом, то до тех пор, пока в старшем разряде мантиссы в результате сдвига появится единица). В этом случае может возникнуть антипереполнение.
Если |z|=0, то результату присваивается машинный нуль (потеря значимости), а выполнять нормализацию нет необходимости.
При использовании модифицированного дополнительного кода для вычитания левое нарушение нормализации обнаруживается так же, как и в предыдущем случае, а правое нарушение -- по комбинациям 00,0... и 11,11...
Похожие статьи
-
Особенности представления числовых данных с плавающей точкой Каждой форме представления чисел (с фиксированной или плавающей точкой) свойственны свои...
-
Операция сложения и вычитания, двоичных беззнаковых чисел в компьютерных системах Компьютерная система выполняет сложение и вычитание операндов по...
-
При сложении и вычитании знаковых двоичных чисел операция вычитания заменяется операцией сложения в дополнительном коде. Докажем, что результат...
-
Форматы двоичных числовых данных с плавающей точкой - Компьютерная арифметика
Формат данных с плавающей точкой, использовавшийся в компьютерных системах первых поколений, включал четыре поля, а именно: указанные ранее поля для...
-
Контроль переполнения в компьютерных системах - Компьютерная арифметика
Возможно только при сложении чисел с одинаковыми знаками, когда для представления результата недостаточно отведенного количество разрядов (требуется...
-
Арифметические флажки - Компьютерная арифметика
Флажки являются признаками, представляющими общую характеристику результата выполнения операции. Наиболее широко применяются следующие флажки: - Флажок...
-
Стандарт IEEE-754 - Компьютерная арифметика
К настоящему времени разработаны многочисленные варианты форматов чисел с плавающей точкой и практической реализации арифметических устройств с плавающей...
-
Умножение двоичных знаковых чисел в компьютерных системах - Компьютерная арифметика
При выполнении операции умножения знаковых чисел исходные сомножители могут быть представлены в ПК, ОК или ДК: . (4.35) При данном способе умножения...
-
Машинная арифметика с плавающей точкой - Представление и хранение информациии в ЭВМ
Число с плавающей точкой: X=±Mx-S±px Здесь: M - мантисса; S - порядок. 0.314 101 0.0314 102 Машинные числа. Машинными называются числа, допускающие...
-
Деление двоичных беззнаковых чисел в компьютерных системах - Компьютерная арифметика
Деление мантисс чисел в форме с фиксированной запятой выполняется над абсолютными величинами операндов, представленными, чаще всего, прямым кодом....
-
Он позволяет заменить операцию вычитания на операцию сложения, чем упрощает архитектуру компьютерной системы. Дополнительный код является дополнением...
-
Деление двоичных знаковых чисел в компьютерных системах - Компьютерная арифметика
Так как данные в памяти компьютера хранятся в ДК, операцию деления целесообразно выполнять в ДК. За основу можно принять базовый алгоритм деления (без...
-
Арифметические операции в двоичной системе счисления Умножение в двоичной системе счисления = поразрядные сдвиги + суммирование Основные форматы хранения...
-
Представление числовых данных в компьютерных системах - Компьютерная арифметика
Компьютерный арифметика счисление двоичный Система вещественных чисел, используемая в ручных расчетах, предполагается бесконечной и непрерывной, т. е....
-
Умножение двоичных беззнаковых чисел в компьютерных системах - Компьютерная арифметика
Пусть сомножителями X и Y являются s-битные целые числа без знака: Где - (Х) - множимое, (Y) - множитель, (Z) - произведение. Тогда: Z = X - Y. (4.2)...
-
Операции сдвига в компьютерных системах - Компьютерная арифметика
Является одной из самых распространенных в компьютерной арифметике. В частности, она используется при выполнении умножения или деления двоичных чисел....
-
Следующая группа символьных операций выполняется с выражениями, требующими указания переменной, по отношению к которой выполняется операция. Для этого...
-
Классификация систем счисления - Компьютерная арифметика
В настоящее время различают Позиционные И Непозиционные системы счисления. Классификация систем счисления приведена на рис. 2.1. Рисунок 2.1 --...
-
Базовые понятия и определения компьютерной арифметики - Компьютерная арифметика
Компьютерная арифметика - совокупность принципов и форм представления числовой информации, методов и алгоритмов выполнения арифметических операций и...
-
Перевод чисел из одной позиционной системы счисления в другую - Компьютерная арифметика
Задача перевода чисел из одной позиционной системы счисления в другую является одной из главных в компьютерной арифметике. Ее можно сформулировать...
-
Кодирование по методу четности / нечетности - Кодирование информации
Для контроля правильности передачи информации, а также как средство шифрования информации используются различные коды. Коды, использующие для передачи...
-
Фильтрация и MIP Mapping - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
При работе с текстурами существует немало проблем. У экрана есть свое разрешение и определенное количество пикселей, которые на нем можно отобразить в...
-
СЕМАНТИКА, Схема подпрограммы вычитания - Теория вычислительных процессов
Операционная семантика команды sub al, 1 L1(al) 1 1 0 1 1 0 0 1 # 0 1 1 0 1 1 0 0 # L2 1. q01X1 Top1 q11 2. q11X1B1q02 3. q02X2 Top2 q12 4. q12X2 02 q22...
-
Фреймы и формы - Разработка программ на языке Ассемблер и на языке HTML
Зачастую на Web - сайтах можно встретить страницы с размещенными на них HTML - формами. Веб-формы - удобный способ получения информации от посетителей...
-
Компромиссная система, для удобства восприятия данных человеком и корректной работы компьютера, двоично-десятичная запись чисел. Принцип построения этой...
-
Кодированием называется представление символов одного алфавита средствами другого алфавита. Алфавит содержащий два символа называется двоичным (часто их...
-
Таймер включение программа высоковольтный Если тактовая частота генератора равна 20 МГц, то время выполнения одного такта равно 0,05 мкс. Время...
-
КР580ИР82 представляет собой 8-разрядный буферный регистр, предназначенный для ввода и вывода информации со стробированием. Микросхема имеет восемь...
-
Разработаем логическую модель БД для ведения реестра в виде реляционной модели. Для этого используется табличное представление, в котором каждому объекту...
-
Цветовой охват - Компьютерная графика в рекламе
Глубина цвета Кроме размера изображения, важной является информация о количестве цветов, закодированных в файле. Цвет каждого пиксела кодируется...
-
Описанный метод, по сути, анализирует поведение веб-приложения на предмет совершения недопустимых относительно профиля нормального поведения операций....
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Вся информация, которую обрабатывает компьютер, должна быть представлена двоичным кодом с помощью двух цифр -- 0 и 1. Эти два символа принято называть...
-
Основные особенности использования углов поворота растра - Компьютерная графика в рекламе
Угол поворота, структура растра и выходное разрешение Угол поворота растра является чрезвычайно важным фактором полутонового растрирования. Именно углы...
-
Матричные операции - Работа с символьным процессором
Символьный процессор системы MathCAD обеспечивает проведение в символьном виде трех наиболее распространенных матричных операций: транспонирование и...
-
Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в справочнике, система поддерживает несколько форм представления...
-
Задание: 1. Прочитать текст "Алгоритм и его свойства", в таблице №1 "Алгоритм и его свойства" проверьте правильное заполнение таблицы. Запишите в тетрадь...
-
Рассмотрим замкнутую сеть массового обслуживания с разнотипными заявками, которая является вероятностной моделью обслуживания заявок в УП "Проектный...
-
ДД-код Константа16 ДД-код Константа16 1111 1111 FF 0000 0000 00 0011 0101 35 1111 0100 F4 0101 0111 57 1001 1010 9A 1000 1101 8D 0000 0111 07 1000 0000...
-
Системы счисления - Компьютерная арифметика
Как было отмечено в первой главе Система счисления - совокупность приемов и правил для установления однозначного соответствия между любым числом и его...
Принципы выполнения арифметических операций над числами в форме с плавающей точкой, Сложение и вычитание чисел в форме с плавающей точкой - Компьютерная арифметика