Сложение чисел с плавающей запятой
При сложении чисел складываемые цифры (разряды) должны иметь одинаковый вес. Это требование выполняется, если складываемые числа имеют одинаковые порядки. Пусть имеются два числа с плавающей запятой:
A=mArpA,
B=mBrpB.
Алгоритм сложения чисел с произвольными знаками состоит в следующем.
1. Производится сравнение порядков pA и pB. Для этого из порядка числа A вычитается порядок числа B. Разность p=pA-pB указывает, на сколько разрядов требуется сдвинуть вправо мантиссу числа с меньшим порядком. Если p=pA-pB>0, то pA>pB и для выравнивания порядков необходимо сдвинуть вправо мантиссу MB. Если p=pA-pB<0, то pB>pA и для выравнивания порядков необходимо сдвинуть вправо мантиссу MA. Если p=pA-pB=0, то pA=pB и порядки слагаемых выравнивать не требуется.
2. Выполняется сдвиг соответствующей мантиссы до тех пор, пока p≠0.
3. Выполняется сложение мантисс MA и MB по правилу сложения правильных дробей.
4. Если при сложении мантисс произошло переполнение, то производится нормализация путем сдвига мантиссы суммы вместе со знаковым разрядом вправо на один разряд с увеличением порядка на единицу. Если же происходит денормализация, то выполняется сдвиг мантиссы результата на соответствующее количество разрядов в сторону, противоположную нарушению нормализации с соответствующим изменением порядка суммы.
Пример: МА=-0,10110 рА=+0111
МВ=-0,11011 рВ=+0101
[MA]доп=1,01010 p= [рА]доп+[-рВ]доп= 0.0111
[MB]доп=1,00101 + 1.1011
1 0.0010
Так как [рА-рВ]доп>0, то сдвигу подвергается мантисса МВ.
В рассматриваемом примере при каждом сдвиге мантиссы на один разряд из положительной разности порядков производим последовательное вычитание единицы до тех пор, пока в результате не будет получен ноль. При этом выполняется анализ разности порядков на каждом шаге. Если она отлична от нуля, то производится очередной сдвиг соответствующей мантиссы. В случае если разность [рА-рВ]доп<0, необходимо либо прибавлять единицу до нулевого результата, либо изменить знак разности на противоположный и, как и выше, выполнять вычитание единицы.
[MB]доп=1,00101 0.0010
[-1]доп= 1.1111
[MB]доп=1,10010 1 0.0001
[MB]доп=1,11001 01 [-1]доп= 1.1111
0.0000
[MB]доп=1,11001 01
[MA]доп=1,01010
11,00011 01 = [МА+В] рА+В=max(рА,pB)=pA=+0.0111
Полученный результат нормализован. После выполнения операции округления получим [МА+В]= 1,00011.
Yandex.RTB R-A-252273-3
- Арифметические и логические основы вычислительной техники учебное пособие
- Введение
- Арифметические основы вычислительной техники Системы счисления
- Двоичная система счисления
- Восьмеричная система счисления
- Шестнадцатеричная система счисления
- Критерии выбора системы счисления
- Перевод чисел из одной системы счисления в другую
- Перевод целых чисел
- Перевод правильных дробей
- Перевод чисел из одной системы счисления в другую, основание которой кратно степени 2
- Кодирование чисел
- Переполнение разрядной сетки
- Модифицированные коды
- Машинные формы представления чисел
- Погрешность выполнения арифметических операций
- Округление
- Нормализация чисел
- Последовательное и параллельное сложение чисел
- Сложение чисел с плавающей запятой
- Машинные методы умножения чисел в прямых кодах
- Ускорение операции умножения
- Умножение с хранением переносов
- Умножение на два разряда множителя одновременно
- Умножение на четыре разряда одновременно
- Умножение в дополнительных кодах
- Умножение на два разряда множителя в дополнительных кодах
- Матричные методы умножения
- Машинные методы деления
- Деление чисел в прямых кодах
- Деление чисел в дополнительных кодах
- Методы ускорения деления
- Двоично-десятичные коды
- Суммирование чисел с одинаковыми знаками в bcd-коде
- Суммирование чисел с разными знаками в bcd-коде
- Система счисления в остаточных классах (сок)
- Представление отрицательных чисел в сок
- Контроль работы цифрового автомата
- Некоторые понятия теории кодирования
- Обнаружение и исправление одиночных ошибок путем использования дополнительных разрядов
- Коды Хемминга
- Логические основы вычислительной техники Двоичные переменные и булевы функции
- Способы задания булевых функций
- Основные понятия алгебры логики
- Основные законы алгебры логики
- Формы представления функций алгебры логики
- Системы функций алгебры логики
- Минимизация фал
- Метод Квайна
- Метод Блейка - Порецкого
- Метод минимизирующих карт Карно (Вейча)
- Б в Рис. 19. Таблица истинности и карта Карно
- Минимизация конъюнктивных нормальных форм
- Минимизация не полностью определенных фал
- Кубическое задание функций алгебры логики
- Метод Квайна −Мак-Класки
- Алгоритм извлечения (Рота)
- Нахождение множества простых импликант
- Определение l-экстремалей
- Минимизация фал методом преобразования логических выражений
- Применение правил и законов алгебры логики к синтезу некоторых цифровых устройств Синтез одноразрядного полного комбинационного сумматора
- Синтез одноразрядного комбинационного полусумматора
- Синтез одноразрядного полного комбинационного сумматора на двух полусумматорах
- Синтез одноразрядного комбинационного вычитателя
- Объединенная схема одноразрядного комбинационного сумматора-вычитателя
- Триггер со счетным входом как полный одноразрядный сумматор
- Введение в теорию конечных автоматов Основные понятия теории автоматов
- Способы задания автоматов
- Структурный автомат
- Память автомата
- Канонический метод структурного синтеза автоматов
- Принцип микропрограммного управления
- Граф-схема алгоритма
- Пример синтеза мпа по гса
- Синтез мпа Мили по гса
- Синхронизация автоматов
- Литература
- 220013, Минск, п.Бровки, 6