Система вещественных чисел, применяемая в обычных математических (ручных) вычислениях, предполагается бесконечной и непрерывной. Это означает, что не существует никаких ограничений на диапазон используемых чисел и на точность (количество значащих цифр) их представления. Для любого вещественного числа имеется бесконечно много чисел, которые больше и меньше его, а между любыми двумя вещественными числами также находится бесконечно много чисел.
Реализовать такую систему чисел в технических устройствах нельзя. Во всех компьютерах размеры регистров и ячеек памяти фиксированы, что ограничивает систему представимых чисел. Ограничения касаются как диапазона, так и точности представления чисел, т.е. система машинных чисел оказывается конечной и дискретной, образуя подмножество системы вещественных чисел.
Обычно вещественные числа хранятся и используются в ЭВМ в формате с плавающей точкой.
Для вещественных чисел применяется формат с плавающей точкой в вариантах обычной (или одинарной), двойной и расширенной точности (ОТ, ДТ, РТ). Значащие цифры числа находятся в поле мантиссы (или дроби), поле порядка (или экспоненты) показывает фактическое положение точки в разрядах мантиссы, а бит знака S определяет знак числа. Мантисса представлена в прямом коде.
Порядок Е задается в смещенной форме; он равен истинному порядку, увеличенному на значение смещения.
Смещенный порядок называется также характеристикой; ее можно считать целым положительным или беззнаковым числом.
Задание порядка в форме со смещением упрощает операцию сравнения чисел с плавающей точкой, превращая ее в операцию сравнения целых чисел, а выполнение остальных операций практически не усложняется. Так как операции с целыми числами выполняются значительно быстрее операций над числами с плавающей точкой, сравнение чисел с плавающей точкой производится быстрее, что важно в алгоритмах с большим числом сравнений, например в алгоритмах сортировки. Смещенные порядки 000...00 и 111...11 зарезервированы для специальных значений.
Числа с плавающей точкой длиной 32 и 64 бита применяются во многих компьютерах и обычно называются числами с одинарной и двойной точностью. Как правило, порядок имеет фиксированную длину, определяя один и тот же диапазон представимых чисел, а для повышения точности вводятся дополнительные биты мантиссы. При этом схемы арифметико-логических устройств в процессоре усложняются незначительно. Однако при удвоении длины числа предпочтительнее часть бит отвести для расширения порядка. Такой порядок обеспечивает, в частности, получение точного произведения без переполнения и антипереполнения, когда сомножители представлены в формате ОТ. Параметры для трех форматов ВЧ приведены на рисунке. Значение числа с плавающей точкой равно:
Отметим наличие в мантиссе бита F0 единиц. В форматах чисел с плавающей точкой большинства компьютеров бит F0 отсутствует, и мантисса оказывается правильной дробью.
Мантисса обычно представляется в нормализованной форме, т.е. старший бит равен 1. Следовательно за исключением числа нуль мантисса состоит из целой части и дроби в следующем виде :
1.F1F2F3...FN, где Fi равно 0 или 1. Благодаря нормализации достигается однозначное представление чисел и устраняются старшие нули в числах, меньше единицы, что максимизирует количество значащих цифр мантиссы при ее фиксированной длине.
В форматах ОТ и ДТ бит F0 при передачах чисел и хранении их в памяти не используется. Это так называемый скрытый или неявный бит, который в нормализованных числах содержит 1. Следовательно, в этих форматах невозможно представить числа, которые не нормализованы (за исключением нулевого порядка). Кроме того, скрытый бит не позволяет представить в этих форматах нуль и он должен кодироваться как специальное значение. Скрытый бит можно реализовать только при основании, на степень которого умножается мантисса, равным 2.
Числа в формате РТ имеют явный бит F0. Такой формат позволяет несколько повысить скорость выполнения операций и обеспечить некоторые преимущества, благодаря простоте представления чисел, не являющихся нормализованными.
Числа в форматах ОТ и ДТ существуют только в памяти. При загрузке числа в одном из этих форматов в регистр арифметического устройства оно автоматически преобразуется в 80-битный формат РТ. Аналогично данные из регистров можно преобразовать в форматы ОТ и ДТ для сохранения их в памяти. Формат РТ также допускает сохранение в памяти и обычно применяется для промежуточных результатов.
В процессорах Intel принято хранение многобайтных элементов по принципу “младшее – по меньшему адресу”. Логически во всех форматах левый байт является старшим, а правый младшим. В физической памяти первым, т.е. по меньшему адресу, хранится младший байт (этот адрес считается и адресом всего числа), а последним, т.е. по большему адресу, – старший байт. Передача данных всегда начинается с младшего адреса.