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

Действия с числами с плавающей запятой Умножение и деление

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

Соответственно, чтобы произвести деление нужно разделить мантиссу делимого на мантиссу делителя и вычесть из порядка делимого порядок делителя. Затем точно так же округлить мантиссу результата и привести его к нормализованной форме.

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

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

Выполним сложение чисел с плавающей точкой и смещенным порядком в 32-х разрядном формате -269 7/32 и 405,875.

Переведем -269 7/32 в машинный вид. Для этого сначала переведем его в двоичную систему счисления.

-269 7/32 = -269,21875

-269,2187510 = -100001101,001112

Нормализуем полученное двоичное число по правилам машинной арифметики.

-100001101,00111 = -1,0000110100111 × 101000

Найдем смещенный порядок. Так как в условии говориться о 32-разрадном представлении, то смещение порядка равно 12710.

E = 810 + 12710 = 10002 + 11111112 = 100001112

Число отрицательное, следовательно, в бите знака будет стоять единица.

Итак, первое число в машинном 32-разрадном представлении с плавающей точкой будет иметь вид:

11000011100001101001110000000000 (жирным шрифтом выделен порядок числа, длина мантиссы - 23 бита).

Переведем второе число в машинный вид, совершая те же действия.

405,87510 = 110010101,1112 = 1,10010101111 × 101000

Очевидно, что порядок со смещением у второго числа будет таким же, как и у первого.

Второе число положительное, следовательно, бит знака будет содержать ноль.

Итак в машинном 32-разрядном представлении второе число будет иметь вид:

01000011110010101111000000000000

Порядки у слагаемых равны, поэтому пропускаем шаг выравнивания порядков и проводим вычитание мантисс по правилам двоичной арифметики. В

компьютере этим занимается арифметический сопроцессор, встроенный в центральный процессор машины.

1,10010101111002 - 1,00001101001112 = 0,10001000101012

Приводим полученный результат к машинному виду. Для этого мы должны внести поправку в порядок - уменьшить его на единицу.

Знак результата - положительный, следовательно, бит знака содержит ноль.

01000011000010001010100000000000

Проверим правильность наших вычислений. Переведем результат в десятичное представление.

Найдем реальный порядок результата, вычтя из него значение смещения 12710.

E = 100001102 - 11111112 = 13410 - 12710 = 710 = 1112

Следовательно, число результата будет иметь вид:

A = 1,000100010101 × 10111 = 10001000,101012 = 136,6562510

Результат наших вычислений верен, так как 405,875 - 269,21875 = 136,65625.