Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAOD_Konspekt-I.doc
Скачиваний:
14
Добавлен:
03.11.2018
Размер:
2.32 Mб
Скачать

2.3.2. Вещественные числа

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

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

Обычно вещественные числа хранятся и используются в ЭВМ в формате с плавающей точкой.

Для вещественных чисел применяется формат с плавающей точкой в вариантах обычной (или одинарной), двойной и расширенной точности (ОТ, ДТ, РТ). Зна­чащие цифры числа находятся в поле мантиссы (или дроби), поле порядка (или экспоненты) показывает фактическое положение точки в разрядах мантиссы, а бит знака S определяет знак числа. Мантисса представлена в прямом коде.

Порядок Е задается в смещенной форме; он равен истинному порядку, увеличенному на значение смещения.

Смещенный порядок называется также характеристикой; ее можно счи­тать целым положительным или беззнаковым числом.

Задание порядка в форме со смещением упрощает операцию сравнения чисел с плавающей точкой, превращая ее в операцию сравнения целых чи­сел, а выполнение остальных операций практически не усложняется. Так как операции с целыми числами выполняются значительно быстрее операций над числами с плавающей точкой, сравнение чисел с плавающей точкой производится быстрее, что важно в алгоритмах с большим числом сравне­ний, например в алгоритмах сортировки. Смещенные порядки 000...00 и 111...11 зарезервированы для специальных значений.

Числа с плавающей точкой длиной 32 и 64 бита применяются во мно­гих компьютерах и обычно называются числами с одинарной и двойной точ­ностью. Как правило, порядок имеет фиксированную длину, определяя один и тот же диапазон представимых чисел, а для повышения точности вводятся дополнительные биты мантиссы. При этом схемы арифметико-ло­гических устройств в процессоре усложняются незначительно. Однако при удвоении длины числа предпочтительнее часть бит отвести для расширения порядка. Такой порядок обеспечивает, в частности, получение точного произведения без переполнения и антипереполнения, когда сомножители представлены в формате ОТ. Параметры для трех форматов ВЧ приведены на рисунке. Значение числа с плавающей точкой равно:

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

Мантисса обычно представляется в нормализованной форме, т.е. старший бит равен 1. Следовательно за исключением числа нуль мантисса состоит из целой части и дроби в следующем виде :

1.F1F2F3...FN, где Fi равно 0 или 1. Благодаря нормализации достигается однозначное представление чисел и устраняются старшие нули в числах, меньше единицы, что максимизирует количество значащих цифр мантиссы при ее фиксированной длине.

В форматах ОТ и ДТ бит F0 при передачах чисел и хранении их в памяти не используется. Это так называемый скрытый или неявный бит, кото­рый в нормализованных числах содержит 1. Следовательно, в этих форматах невозможно представить числа, которые не нормализованы (за исклю­чением нулевого порядка). Кроме того, скрытый бит не позволяет предс­тавить в этих форматах нуль и он должен кодироваться как специальное значение. Скрытый бит можно реализовать только при основании, на степень которого умножается мантисса, равным 2.

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

Числа в форматах ОТ и ДТ существуют только в памяти. При загрузке числа в одном из этих форматов в регистр арифметического устройства оно автомати­чески преобразуется в 80-битный формат РТ. Аналогично данные из регистров можно преобразовать в форматы ОТ и ДТ для сохранения их в памяти. Формат РТ также допускает сохранение в памяти и обычно применяется для промежуточных результатов.

В процессорах Intel принято хранение многобайтных элементов по принципу “младшее – по меньшему адресу”. Логически во всех форматах левый байт является старшим, а правый младшим. В физической памяти первым, т.е. по меньшему адресу, хранится младший байт (этот адрес считается и адресом всего числа), а последним, т.е. по большему адресу, – старший байт. Передача данных всегда начинается с младшего адре­са.

Специальные числовые значения

К специальным значениям относятся денормализованные вещественные числа, нули, отрицательные и положительные бесконечности, нечисла, неопределенность и неподдерживаемые форматы. Для представления специальных значений зарезервированы минимальный 00000... 00 и максимальный 111...11 смещенные порядки.

1). Денормализованные вещественные числа. Это числа, которые меньше минимального нормализованного числа для каждого вещественного формата. Такие числа имеют минимальный смещенный порядок и ненулевую мантиссу.

2). Истинный нуль. Значение нуль в вещественных и десятичном форматах является знаковым, а двоичный целый нуль всегда положительный. В вычислениях знак нуля не учитывается, и обычно программист может не заботиться о наличии знакового нуля. Нуль в вещественных форматах кодируется с нулевым смещенным порядком и мантиссой.

3). Бесконечность. Вещественные форматы поддерживают знаковые представления бесконечностей. Эти значения кодируются со смещенным порядком из всех единиц 1111...11 и мантиссой 1.000...00. Знаки бесконечностей учитываются и сравнения возможны.

4). Нечисла. Нечисло является представителем класса специальных значений, существующих только в вещественных форматах. Оно имеет смещенный порядок из всех единиц, любой знак и любую мантиссу за исключением 1.000..00.

Арифметическое устройство формирует специальное нечисло, называемое неопределенностью, реагируя на замаскированный особый случай недействительной операции. Оно имеет отрицательный знак, смещенный порядок 111...111, а мантисса равна 1.1000...00. Неопределенность предусмотрена для вычислительных ситуаций, в которых человек говорит "не знаю", например деление 0 на 0.

5). Неподдерживаемые форматы. Формат РТ имеет много двоичных наборов, которые не попадают ни в один из ранее рассмотренных классов.

Переменные вещественных (или действительных) типов определяются в языках Си/Си++ следующим образом:

float f1; // плавающий (вещественный) тип обычной точности (4 байта)

double d2; // плавающий тип двойной точности (8 байт)

long float LF; // то же, что double

long double Ld; // длинный плавающий двойной точности (10 байт)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]