Кодирование вещественных чисел



Формат с плавающей точкой использует представление вещест­вен­но­го числа 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 (In­stitute 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 значащих цифр.

Комментариев нет:

Отправить комментарий