Lect3

advertisement
2.3.2. Вещественные числа
Система вещественных чисел, применяемая
в ручных вычислениях, предполагается
бесконечной и непрерывной. Это означает,
что не существует никаких ограничений на
диапазон используемых чисел и на точность ( количество значащих цифр) их
представления.
Для любого вещественного числа имеется
бесконечно много чисел, которые больше и
меньше его, а между любыми двумя вещественными числами также находится бесконечно много чисел.
Реализовать такую систему чисел в технических устройствах нельзя.
Во всех компьютерах размеры регистров и
ячеек памяти фиксированы, что ограничивает систему представимых чисел. Ограничения касаются как диапазона, так и точности представления чисел, т.е. система машинных чисел оказывается конечной и
дискретной, образуя подмножество системы вещественных чисел.
Обычно вещественные числа хранятся и
используются в ЭВМ в формате с плавающей точкой.
Для ВЧ применяется формат с плавающей
точкой (ОТ, ДТ, РТ ). Значащие цифры
числа находятся в поле мантиссы(или дроби ), поле порядка ( или экспоненты) показывает фактическое положение точки в
разрядах мантиссы, а бит знака S - определяет знак числа. Мантисса представлена
в прямом коде.
Порядок Е задается в смещенной форме; он
равен истинному порядку, увеличенному
на значение смещения.
Смещенный порядок называется также характеристикой; ее можно считать целым
положительным или беззнаковым числом.
Задание порядка в форме со смещением
упрощает операцию сравнения чисел с плавающей точкой, превращая ее в операцию
сравнения целых чисел, а выполнение
остальных операций практически не
усложняется.
Так как операции с целыми числами выполняются значительно быстрее операций
над числами с плавающей точкой, сравнение чисел с плавающей точкой производится быстрее, что важно в алгоритмах с
большим числом сравнений, например в
алгоритмах сортировки. Смещенные порядки 000...00 и 111...11 зарезервированы
для специальных значений.
Числа с плавающей точкой длиной 32 и 64
бита применяются во многих компьютерах
и обычно называются числами с одинарной
и двойной точностью. Как правило порядок
имеет фиксированную длину, определяя
один и тот же диапазон представимых чисел, а для повышения точности вводятся
дополнительные биты мантиссы. При этом
схемы арифметико - логических устройств
в процессоре усложняются незначительно.
Однако при удвоении длины числа предпочтительнее часть бит отвести для расширения порядка. Такой порядок обеспечивает,
в частности, получение точного произведения без переполнения и антипереполнения,
когда сомножители представлены в формате ОТ.
Параметры для трех форматов ВЧ приведены в табл. 1.
******** СМ. ПРИЛОЖЕНИЕ -*********
Значение числа с плавающей точкой равно:
**********СМ. ПРИЛОЖЕНИЕ -*******
Отметим наличие в мантиссе бита F0 единиц. В форматах чисел с плавающей точкой
большинство компьютеров бит F0 отсутствует, и мантисса оказывается правильной
дробью.
Мантисса обычно представляется в нормализованной форме, т.е. старший бит равен
1. Следовательно за исключением числа
нуль мантисса состоит из целой части и
дроби в следующем виде :
1. F1F2F3...FN, где Fi – равно 0 или 1. Благодаря нормализации достигается однозначное представление чисел и устраняются старшие нули в числах , меньше единицы, что максимизирует количество значащих цифр мантиссы при ее фиксированной
длине.
В форматах ОТ и ДТ бит F0 при передачах
чисел и хранении их в памяти не фигурирует. Это так называемый скрытый или неявный бит, который в нормализованных числах содержит 1.
Следовательно , в этих форматах невозможно представить числа, которые не нормализованы( за исключением нулевого порядка). Кроме того, скрытый бит не позволяет представить в этих форматах нуль и он
должен кодироваться как специальное значение. Скрытый бит можно реализовать
только при основании, на степень которого
умножается мантисса, равным 2.
Числа в формате РТ имеют явный бит F0.
Такой формат позволяет несколько повысить скорость выполнения операций и
обеспечить некоторые преимущества, благодаря простоте представления чисел, не
являющихся нормализованными.
Числа в форматах ОТ и ДТ существуют
только в памяти. При загрузке числа в одном из этих форматов в регистр устройства
FPU оно автоматически преобразуется в 80
битный формат РТ. Аналогично данные из
регистров можно преобразовать в форматы
ОТ и ДТ для сохранения их в памяти. Формат РТ также допускает сохранение в памяти и обычно применяется для промежуточных результатов.
В процессорах Intel принято хранение многобайтных элементов по принципу "младшее - по меньшему адресу ". Логически во
всех форматах левый байт является старшим, а правый младшим. В физической
памяти первым, т.е. по меньшему адресу ,
хранится младший байт ( этот адрес
считается и адресом всего числа), а последним , т.е. по большему адресу, - старший
байт. Передача данных всегда начинается с
младшего адреса.
Специальные численные значения.
К специальным значениям относятся денормализованные вещественные числа, нули, отрицательные и положительные бесконечности, не числа, неопределенность и
неподдерживаемые форматы. Для представления специальных значений зарезервированы минимальный 00000...00 и максимальный 111...11 смещенные порядки.
1) Денормализованные вещественные числа.
Это числа, которые меньше минимального
нормализованного числа для каждого вещественного формата. Такие числа имеют
минимальный смещенный порядок и ненулевую мантиссу.
2) Истинный нуль. Значение нуль в вещественных и десятичном форматах является
знаковым, а двоичный целый нуль всегда
положительный. В вычислениях знак нуля
не учитывается, и обычно программист
может не заботиться о наличии знакового
нуля. Нуль в вещественных форматах кодируется с нулевым смещенным порядком
и мантиссой.
3) Бесконечность.
Вещественные форматы поддерживают
знаковые представления бесконечностей.
Эти значения кодируются со смещенным
порядком из всех единиц 1111...11 и мантиссой 1.000...00. Знаки бесконечностей
учитываются и сравнения возможны.
4) Нечисла.
Нечисло является представителем класса
специальных значений, существующих
только в вещественных форматах. Оно
имеет смещенный порядок из всех единиц,
любой знак и любую мантиссу за исключением 1.000..00.
Устройство FPU формирует специальное
нечисло, называемое неопределенностью,
реагируя на замаскированный особый случай недействительной операции. Оно имеет
отрицательный знак, смещенный порядок
111...111, а мантисса равна 1.1000..00. Неопределенность предусмотрена для вычислительных ситуаций, в которых человек говорит "не знаю ".
Например деление 0 на 0.
5) Неподдерживаемые форматы.
Формат РТ имеет много двоичных наборов,
которые не попадают ни в один из ранее
рассмотренных классов.
2.3.3. Представление и структуры хранения
логической информации.
Логический тип данных ( BOOLEAN)
представляет одно из двух истинных логических значений (истина/ложь). Эти значения обозначаются посредством стандартных идентификаторов
1. true ( истина)
2. false ( ложь)
Над значениями булевского типа допускаются операции сравнения, причем считается, что false<true. Кроме того, имеются четыре стандартные логические операции ,
обозначаемые служебными словами:
1. and - логическое умножение,
2. or
- логическое сложение,
3. xor - сложение по модулю 2 (исключающее или),
4. not - логическое отрицание.
Для запоминания логического значения достаточно одного бита. Однако с целью
убыстрения доступа к логическому значению его представление в памяти может
быть избыточным.
В Турбо Паскале 7.0 добавлено еще три логических типа:
1. ByteBool (размер 1 байт),
2. WordBool ( размер - 2 байта) и
3. LongBool ( размер 4 байта).
Они введены для унификации с другими
языками программирования и со средой
Windows. Отличие их от стандартного типа
Boolean заключается в фактической величине параметра этого типа.
Значению FALSE соответствует число , записанное в соответствующее количество
байтов.
Значению же TRUE для типа BOOLEAN
соответствует число 1, записанное в его
байт, а для других типов значению TRUE
соответствует любое число, отличное от
нуля.
2.3.4. Символы
Download