Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Арифметические операции с числами в формате с плавающей запятой






Сложение и вычитание

Производятся в несколько этапов:

1) Выравниваются порядки чисел в сторону большего (чтобы не получить мантиссы > 1)

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

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

 

Пример 1: Вычесть из числа A = 20.0 число B = 11.0.

A = 20 = 101002 =.101 * 25 =.101 * 10101 (все числа –двоичные)

B = 11 = 10112 =.1011 * 24 =.1011 * 10100

Процессор для определения разности порядков вычитает из порядка числа A порядок числа B и получает 1. Т.к. порядок числа A на единицу больше порядка числа B, порядок числа B увеличивается на 1 и мантисса при этом сдвигается на 1 разряд вправо относительно точки:

B =.01011 * 10101

Мантисса числа B должна быть записана как отрицательное число (нуж­но выполнить вычитание):

B = -010110…0 = 1|101001…1 = 1|101010…0

Обратный код Дополнительный

Сложение мантисс в модифицированном дополнительном коде:

00| 1010 00…0 (число A)

+ 11| 1010 10…0 (число B)

1| 00| 0100 10…0 (сумма, порядок = 1012)

Произошло нарушение нормализации.

Нормализация результата: мантисса сдвигается влево, порядок уменьша­ется: A - B =.1001* 10100 = 10012 = 9.0

 

Пример 2: Сложить A = 5.0 и B = 28.0.

A = 5 = 1012 =.101 * 25 =.101 * 1011 (все числа –двоичные)

B = 28 = 111002 =.111 * 25 =.111 * 10101

Процессор для определения разности порядков вычитает из порядка числа A порядок числа B и получает -2. Т.к. порядок числа A на 2 меньше порядка числа B, порядок числа A увеличивается на 2 и мантисса при этом сдвигается на 2 разряда вправо относительно точки:

A =.00101 * 10101

Сложение мантисс в модифицированном коде:

00| 0010 10…0 (число A)

+ 00 | 1110 00…0 (число B)

01| 0000 10…0 (сумма, порядок = 1012)

 

Произошло нарушение нормализации.

Нормализация результата: мантисса сдвигается вправо, порядок увеличивается: A + B =.100001* 10110 = 1000012 = 33.0

 

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

 

Умножение и деление

 

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

При делении из порядка делимого вычитается порядок делителя, а ман­тисса делимого делится на мантиссу делителя, затем результат нормализует­ся.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.