Деление и умножение с плавающей точкой. Как получается получившаяся мантисса?

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

Но вот что-то, чего я не понимаю. Мантиссы - это дроби, я только научился умножать и делить целые числа. Какие правила применяются к арифметике мантисс? Я видел несколько примеров, в которых умножающие мантиссы рассматривались как целые числа, но что для деления, что происходит с остатком? Кто-нибудь может привести пример разделения мантиссы?

1 ответ

(Предпочтительный термин "значимый". "Мантисса" является устаревшим термином со времен бумажных таблиц логарифмов.)

Примеры добавления трехразрядных значений:

 1.01
+1.11
_____
11.00
Result >= 10.00, so shift to 1.100, round to 1.10, and add one to exponent.

 1.00
+1.11
_____
10.11
Result >= 10.00, so shift to 1.011, round to 1.10, and add one to exponent.

Примеры вычитания трехразрядных значений:

 1.01
-1.10
Note the latter value is larger in magnitude, so swap
them and remember to invert the sign of the result later.
 1.10
-1.01
_____
 0.01
Result < 1.00, so shift to 1.00 and subtract two from exponent.

Пример умножения трехразрядных значений:

   1.01
  *1.10
_______
  .0000
  .101
+1.01
_______
 1.1110
Result is in range, so do not shift. Rounding
requires rounding up, producing 10.0, which is
>= 10.0, so shift to 1.00 and add one to exponent.

Обратите внимание, что в этих примерах значения добавляемых и вычитаемых чисел уже были выровнены. Это происходит, когда показатели добавляемых чисел равны. Если это не так, одно из чисел должно быть сдвинуто, чтобы его показатель степени был равен другому, и тогда значения можно сложить или вычесть.

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

Другие вопросы по тегам