Формат с плавающей точкой использует представление вещественного
числа R в виде
произведения мантиссы m на основание системы счисления q в некоторой целой степени p, которую
называют порядком: R = m * q p.
Представление числа в форме с
плавающей точкой неоднозначно. Например, справедливы следующие равенства:
12.345 = 0.0012345 * 104 = 1234.5 * 10-2 = 0.12345 * 102
Чаще всего в ЭВМ используют нормализованное представление числа в форме с
плавающей точкой. Мантисса в таком
представлении должна удовлетворять условию: 0.1p <= m < 1. Иначе говоря, мантисса должна
быть меньше 1 и первая значащая цифра - не ноль (p - основание системы счисления).
В памяти компьютера мантисса
представляется как целое число, содержащее только значащие цифры (0 целых и
запятая не хранятся), так для числа 12.345 в ячейке памяти, отведенной для
хранения мантиссы, будет сохранено число 12345. Для однозначного восстановления
исходного числа остается сохранить только его порядок, в данном примере - это
2.
Диапазон и точность представления
чисел зависят от числа разрядов, отводимых под порядок и мантиссу. Обычно
число в формате с плавающей запятой занимает в памяти 4 (float) или 8 (double) байтов.
Числа с плавающей запятой в
разных вычислительных машинах (ВМ) имеют различные форматы. В настоящее время
для всех ВМ рекомендован стандарт, разработанный международным центром
стандартизации IEEE (Institute of Electrical and Electronics Engineers).
Для повышения точности представления
мантиссы используют прием скрытой единицы: поскольку в нормализованной мантиссе
старшая цифра всегда равна 1, ее можно не хранить. Следовательно, при
4-хбайтовом представлении, мантисса фактически состоит из 24 разрядов. Скрытая
единица при выполнении арифметических операций восстанавливается, а при записи
результата удаляется.
Пример: рассмотрим 4-хбайтовый код числа 20.5:
20.5 = 10100.12 = 0.101001 * 25
Порядок (смещенный): 5+127 = 132 = 1000 01002
Мантисса: 101001 à
010010…0 (первая единица – скрытая, в конец мантиссы добавляются нули).
4-хбайтовое представление:
0
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
порядок
мантисса
В 16-ом виде этот код будет выглядеть так: 42240000.
Определим максимальное число и его точность при 4-хбайтовом
представлении.
Максимальное число:
.1…1 * 2127 =
1 * 2127 = 1.7 * 1038
Максимальное значение мантиссы:
1…1 (24 единицы) = 224
– 1 = 210*2.4 = 10242.4 = 1.7*107,
следовательно точность представления мантиссы 7-8 значащих цифр.
Комментариев нет:
Отправить комментарий