Аппаратное обеспечение персонального компьютера



           

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


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

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

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

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

    n.nnnnnnnnnn...n

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

    1.nnnnnnnnnn...n

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

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

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

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

    Одинарная точность:

    1.(цифры мантиссы)*2(P-127)

    Двойная точность:

    1.(цифры мантиссы)*2(P-1023)

    Расширенная точность:

    1.(цифры мантиссы)*2(P-16383)

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

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




    Содержание  Назад  Вперед