- •3.1 Представление данных в алгоритме.
- •3.2 Представление данных в программе
- •3.3 Представление данных в цпос
- •3.5. Форматы данных
- •3.7.3. Представление вещественных чисел
- •3. 7. 4. Шестнадцатеричный эквивалент представления данных
- •3. 7. 5. Целочисленная и дробная арифметики
- •3.7.6. Коды чисел
- •Прямой код
- •Дополнительный код
- •Двойное слово
- •Msp lsp
- •Ext msp lsp
- •3. 7.7. Представление данных
- •Сложение и вычитание
- •Умножение
- •Замечание
- •3.7.10. Преобразование форматов в цпос с фиксированной точкой
- •3.7.11. Диапазон, динамический диапазон
- •3.7.12. Увеличение динамического диапазона
- •3. 8. 2. Форма представления данных с плавающей точкой
- •3.8.4. Преобразование форматов в цпос с плавающей точкой
- •3.8.5. Нормализованные числа j
- •3,8.6. Специально данные
- •3.8.7. Арифметические операции над данными с плавающей точкой
- •3.8.8. Диапазон, динамический диапазон и точность представления чисел с плавающей точкой
- •3.9. Сравнение цпос с фиксированной и плавающей точками
- •3.10. Организация обработки данных с плавающей точкой в цпос с фт
3,8.6. Специально данные
Кроме рассмотренных выше представлений нормализованных чисел стандарт IEEE 754 дополнительно поддерживает следующие специальные, свойственные только форме с ПТ, представления данных:
D ненормализованные числа;
О нули;
П бесконечности;
О нечисла.
Поясним отдельно особенности каждого из представлений на примере формата "слово" SP (на форматы DP и SEP их распространить несложно).
Нормализованные числа соответствуют значению смещенного порядка (ет-т — -1), мантиссе О,/V 0,000...О и знаку S = О или 1 (табл. 3.11). Денормализа-аия мантиссы используется для представления очень маленьких значений с ПТ, называемых "бесконечно малыми". Область их представления для формата SP показана на рис. 3.28.
Область бесконечно малых значений для формата SP
Рис. 3.28. Область бесконечно малых значений для формата SP
Нули соответствуют значению смещенного порядка (ет\п — 1), мантиссе 0./= 0,000...О и знаку S = 0 или 1 (табл. 3.11), т. е. имеют двоякое представ-
ление со знаком. Следует иметь в виду, что при внешних представлениях данных ноль указывается только со знаком плюс. Ноль со знаком минус получается в промежуточных вычислениях и указывает на переход к особому случаю "потеря значимости" (см. главу 4).
Бесконечности соответствуют значению смещенного порядка (етах + 1), мантиссе 1,/= 1,000...О, знаку S = 0 или 1 (табл. 3.11) и кодируют представления +о° и ~°°, в частности, при делении на 0 или при переходе к особому случаю "переполнение" (см. главу 4).
Нечисла (NaN, Not a Number) соответствуют значению смещенного порядка (етах + 1), мантиссе 1,/V 1,000...О и знаку S = 0 или 1 (табл. 3.10). Различают два класса нечисел: сигнальные SNaN (Signaling NaN) и спокойные-QNaN (Quiet NaN).
Сигнальные нечисла SNaN никогда не получаются в результате вычислений, но распознаются в качестве операндов. Попытка выполнить арифметическую операцию с таким нечислом воспринимается процессором, как недопустимая операция, что может использоваться разработчиком для программного прерывания процессора и выполнения необходимой подпрограммы обслуживания прерывания.
Спокойные нечисла QNaN распознаются процессором и не прерывают его работу. Они генерируются процессором как реакция на особый случай недопустимых операций или создаются программистом для кодирования результатов различных недопустимых операций на этапе отладки программ.
Расширенный формат данных SEP допускает много двоичных представлен ний, не соответствующих ни одному из перечисленных. Все они образуют! группу неподдерживаемых форматов.
Таблица 3.11. Особые случаи при представлении данных с \
Особый случай
|
Представление с ПТ в формате SP
|
Десятичный эквивалент
| ||||
Знак
|
Порядок
|
Мантисса
| ||||
S
|
£(Ю)
|
е(ю)
|
е(2)
|
A f(2)
| ||
Ненормализованные положительные
|
0 0
|
-127 -127
|
0 0
|
00. ..00 00... 00
|
0,00. ..01 — min 0,11. ..11 -max
|
0-23 о127- = 0,7- 10'45 (1 _ 2'23) . 2-'27= = 0,59-10~38 . .j
|
Ненормализованные отрицательные
|
1 1
|
-127 -127
|
0 0
|
00. ..00 00. ..00
|
0,11. ..11 -min 0,00. ..01 - max
|
-(1 - 2'23) • 2-127= = -0,59- 1(Гзв = -0,7 -Ю-45 '
|
Таблица 3.11 (окончание)
Особый случай
|
Представление с ПТ в формате SP
|
Десятичный эквивалент
| ||||
Знак
|
Порядок
|
Мантисса
| ||||
S
|
£<ю)
|
е(ю)
|
е(2)
|
A, f(2)
| ||
Нули: + 0
|
0
|
-127
|
0
|
00... 00
|
0,00. ..00
|
|
-0
|
1
|
-127
|
0
|
00. ..00
|
0,00. ..00
|
|
Бесконечности:
|
0
|
128
|
255
|
11. ..11
|
1,00... 00
|
|
—со
|
1
|
128
|
255
|
11. ..11
|
1,00... 00
|
|
Нечисла: QNaN
|
0
|
128
|
255
|
11. ..11-
|
1,1х...хх
|
|
SNaN
|
0
|
128
|
255
|
11. ..11
|
1,0х...х1
|
|
SNaN
|
1
|
128
|
255
|
11. ..11
|
1,0х...х1
|
|
QNaN
|
1
|
128
|
255
|
11. ..11
|
1,1х...х1
|
|
В табл. 3.11 символ "А" используется для обозначения целой части мантиссы, которая может равняться 0 или 1.