1.Ххххххх... X
Но если старший бит всегда содержит 1, ее можно не хранить в каждом числе с плавающей точкой. Поэтому ради дополнительного бита точности процессор 80287 хранит числа одинарной и двойной точности без старшего бита мантиссы. Следовательно, невозможно иметь число с одинарной или двойной точностью, не являющееся ненормализованным. Если, например, поле мантиссы такого числа содержит биты 0011... 101, то мантисса фактически равна 10011 ... 101.
По ряду причин способ с неявным битом относится только к числам одинарной и двойной точности, но не к числам с расширенной точностью. Во-первых, числа с явным старшим битом обрабатываются несколько быстрее (все числа внутри процессора 80287 представлены в расширенном формате). Во-вторых, число расширенной точности уже имеет достаточную точность.
Поле характеристики. Поле характеристики определяет степень числа 2, на которую нужно умножить мантиссу для получения значения числа с плавающей точкой. В некоторых компьютерах, например IBM 360/370, вместо степеней числа 2 применяются степени числа 16. Для процессора 80287 выбраны степени числа 2 потому, что они позволяют ввести скрытый бит и обеспечивают максимальную производительность при заданном объеме аппаратных средств.
Чтобы иметь отрицательные порядки, в поле порядка находится сумма истинного порядка и положительной константы, называемой смещением.
Смещение S определяется как:
S = 2n -1 + m
где m – поправочный коэффициент (он равен +1 для real и -1 для всех остальных типов), n – число бит, отведенных для характеристики.
Так для одинарной точности смещение S = 28-1 - 1 = 127, для двойной точности S = 210-1 – 1 = 1023 , для расширенной точности S = 215-1 – 1 = 16383
Смещенный порядок (характеристика) может быть вычислена с помощью формулы:
P = S+ рa= 2n -1 + m + рa
Если, например, истинный порядок числа с одинарной точностью равен +5, то в поле порядка находится значение 127 + 5 = 132; если истинный порядок равен -5, то в поле порядка будет 127 - 5 = 122.
В формате одинарной точности длина поля порядка 8 бит. Следовательно, наибольший истинный порядок равен 255 - 127 = 128, а наименьший – 0 - 127 = -127. Наибольший и наименьший порядки зарезервированы для обработки "ошибок, поэтому фактически наибольший допустимый истинный порядок равен 127, а наименьший -126. Аналогичные рассуждения относятся к числам с двойной и расширенной точностью.
Пример 2.2.
{Float a;
A=-21.125;}
A10 = – 21.125
A2 = 10101.001 = 0.10101001*25
Мантисса ма = 0.10101001…0
Порядок ра = 510 Р2 =101
Запись числа з порядком:
0 101 1 10101001
Для машинного представления в формате Float выполняем нормализацию мантиссы и за счет этого уменьшаем порядок на 1.
Нормализованная мантисс ма = 1. 0101001…0
Порядок Ра =101 – 1 = 100.
Смещенный порядок Ра = 2n – 1 + m + Ра = 128 – 1 + 4 = 13110 = 100000112
В памяти ЭВМ число хранится в четырех байтах как
Адреса битов
7…0 15…8 23.. 16 31...24
А = 000...0 000…0 10101001 11000001,
де 31 – бит знака, 30 – 23 – биты порядка, 22 – 0 – бити мантиси.
Третья форма представления двоичных чисел - двоично-десятичная. Ее появление объясняется следующим. При обработке больших массивов десятичных чисел (например, больших экономических документов) приходится тратить существенное время на перевод этих чисел из десятичной системы счисления в двоичную для последующей обработки и обратно - для вывода результатов. Каждый такой перевод требует выполнения двух - четырех десятков машинных команд. С включением в состав отдельных ЭВМ специальных функциональных блоков или спецпроцессоров десятичной арифметики появляется возможность обрабатывать десятичные числа напрямую, без их преобразования, что сокращает время вычислений. Под представление двочно-десятичного числа отводится 10 байт. 1 байт отводится под знак, при чем для знака отводится 1 бит, а остальные 7 не используются. Само число может хранится в упакованном и неупакованном виде. В неупакованном виде каждая цифра десятичного числа занимает один байт. При этом цифра представляется двоичной тетрадой и записывается в четыре младших бита, старшие биты при этом не используются. В упакованном формате в 1 байте записываются двоичные коды двух десятичных цифр.
Например, A10=3759,
A2-10= 0011 0111 0101 1001.
Представление в ЭВМ в неупакованном формате :
Адреса битов: 1023…0
00000000 0000000 … 00000011 00000111 00000101 00001001
