acb41f5d

Вещественные числа - 2


  • 0 - положительное число;
  • 1 - отрицательное число.
  • Все равные по абсолютному значению положительные и отрицательные числа отличаются только этим битом. В остальном числа с разным знаком полностью симметричны. Для представления отрицательных чисел здесь не используется дополнительный код, как это сделано в центральном процессоре.

    Арифметический сопроцессор работает с нормализованными числами, поэтому поле мантиссы содержит мантиссу нормализованного числа.

    Так как здесь используется двоичное представление чисел, сформулируем определение нормализованного числа для двоичного представления:

  • если целая часть мантисса числа в двоичном представлении равна 1, то число с плавающей точкой называется нормализованным.
  • Так как для нормализованного двоичного числа целая часть всегда равна единице, то эту единицу можно не хранить. Именно так и поступили разработчики арифметического сопроцессора - в форматах одинарной и двойной точности целая часть мантиссы не хранится. Таким образом экономится один бит памяти.

    Для наглядности представим мантиссу числа в следующей форме:

    n.nnnnnnnnnn...n

    Здесь символом n обозначается либо 0, либо 1. Нормализованные числа в самой левой позиции содержат 1, поэтому их можно изобразить еще и в таком виде:

    1.nnnnnnnnnn...n

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

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

    Поле порядка - это степень числа 2, на которую умножается мантисса, плюс смещение, равное 127 для одинарной точности, 1023 - для двойной точности и 16383 - для расширенной точности.

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




    Начало  Назад  Вперед