Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_8.DOC
Скачиваний:
0
Добавлен:
15.04.2019
Размер:
64 Кб
Скачать

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

числами с плавающей запятой

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

Для сложения двух чисел в нормальной форме необходимо выров­нять их порядки, так как вес одноименных разрядов мантисс чи­сел с разными порядками неодинаков. Очевидно, что при выравнивании порядков сдвиг одного из чисел возможен только вправо (в сторону младших разрядов), так как сдвиг влево может привести к выходу за диапазон представ­ления мантисс. Поэтому сдвигать нужно мантиссу числа, имею­щего меньший порядок.

Сформулируем алгоритм алгебраического сложения чисел в нормальной форме.

Для алгебраического сложения двух чисел, представленных в форме с плавающей запятой, необходимо:

1. Определить разность порядков и число с меньшим поряд­ком.

2. Сдвинуть вправо мантиссу числа с меньшим порядком на количество разрядов, равное модулю разности порядков.

3. Получить дополнительные коды мантисс.

4. Сложить мантиссы. Сумме приписать больший порядок.

5. Получить прямой код результата.

6. Нормализовать результат.

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

Пример: Сложить числа А = -5,5(10) и В = 11(10) в формате с плавающей запятой.

А = -101,1(2); [А]ПК НФ = 0.11_1_1011 = 0.100_1_01011;

В = 1011(2); [В]ПК НФ = 0.100_0_1011 = 0.100_0_10110;

[А]ДК НФ = 0.100_1_10101

[А + В]ДК = 1.10101 = 0.01011;

+

0.10110

0.01011

[А + В]ПК НФ = 0.100_0_01011 = 0.11_0_1011;

(А + В) = 101,1(2) = 5,5(10).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]