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

Формат с плавающей точкой употребляет представление вещест­вен­но­го числа R в виде произведения мантиссы m на основание системы счисления q в некой целой степени p, которую именуют порядком: R = m * q p.

Представление числа в форме с плавающей точкой разносторонне. К примеру, справедливы последующие равенства:

12.345 = 0.0012345 * 104 = 1234.5 * 10-2 = 0.12345 * 102

В большинстве случаев Кодирование вещественных чисел в ЭВМ употребляют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удов­летворять определенному условию. В современных компьютерах ве­щест­венные (действительные) числа хранятся и обрабатываются в двоич­ной сис­теме счисления. Целая часть нормализованной мантиссы двоичного числа долж­на быть равна 1. При всем этом ноль Кодирование вещественных чисел кодируется и обрабатывается специ­альным образом: 00000000 00000000 00000000 00000000 (нулевой порядок и нулевая мантисса).

В памяти компьютера мантисса представляется как целое число, содер­жа­щее только значащие числа; так для чис­ла 12.345 в ячейке памяти, отведенной для хранения мантиссы, будет сохра­нено число 12345. Для конкретного восстановления начального числа оста­ется сохранить Кодирование вещественных чисел только его порядок, в данном примере - это 2.

Спектр и точность представления чисел зависят от числа разрядов, от­водимых под порядок и мантиссу. Обычно число в формате с плавающей за­пя­той занимает в памяти 4 (float) либо 8 (double) байтов.

В большинстве вычислительных машин для упрощения операций над по­рядками их Кодирование вещественных чисел приводят к целым положительнымчислам, применяя так назы­ваемый смещенный порядок. Для этого к настоящему порядку добав­ля­ет­ся це­лое положительное число, равное половине представимого спектра по­ряд­ков.

Числа с плавающей запятой в различных вычислительных машинах (ВМ) име­ли разные форматы. В текущее время для всех ВМ рекомендован эталон, разработанный Кодирование вещественных чисел интернациональным центром стандартизации IEEE (In­stitute of Electrical and Electronics Engineers).Произносится "ай-трипл-и".

Эталон IEEE 754

Рекомендуемый для всех ВМ формат представления чисел с плаваю­щей запятой определен эталоном IEEE 754. Этот эталон был разработан с целью облегчить перенос программ с 1-го микропроцессора на другие и отыскал Кодирование вещественных чисел ши­рокое применение фактически во всех микропроцессорах и арифметических сопроцессорах.

Рис. 2.24. Главные форматы IEEE 754: а — одинарный; б — двойной

Эталон определяет 32-битовый (одинарный) и 64-битовый (двойной) фор­маты (рис. 2.24) с 8- и 11-разрядным порядком соответственно. Самый левый бит хранит символ числа. Основанием сис­темы счисления является 2.

Смещение равно соответственно 127 и 1023.

Наибольший порядок, который может иметь Кодирование вещественных чисел число: 127 и 1023, малый: -126 и -1022.

Для увеличения точности представления мантиссы употребляют прием сокрытой единицы: так как в нормализованной мантиссе старшая цифра всегда равна 1, ее можно не хранить. Как следует, при 4-хбайтовом пред­ставлении, мантисса практически состоит из 24 разрядов. Сокрытая единица при выполнении арифметических операций восстанавливается, а при Кодирование вещественных чисел записи результата удаляется.

Дальше для простоты рассматривается только 4-байтовое представление вещественных чисел.

Пример 1: Число 1.0 хранится как 1* 2 0 :

00111111 10000000 00000000 00000000

(порядок выделен красноватым цветом)

Символ = 0, порядок = 0, смещенный порядок = 0+127 --> 01111111, значение мантиссы – сокрытая единица.

Число -1.0 имеет такое же представление, только символ равен 1:

10111111 10000000 00000000 00000000

Пример 2: разглядим 4-х байтовый код числа 20.5:

20.5 = 10100.12 = 1.01001 * 24

Порядок (смещенный): 4+127 = 131 = 1000 00112

Мантисса: 101001 à 010010…0 (1-ая единица – сокрытая, в конец мантиссы Кодирование вещественных чисел добавляются нули).

4-хбайтовое представление:

порядок мантисса

В 16-ом виде этот код будет смотреться так: 41 A4 00 00.

Пример 3: разглядим код числа 0.3.

.3

0.3 = 0.01001100110011… = 1.00110011… * 2-2

При записи мантиссы она округляется. Так как 1-ая цифра, которая отбрасывается равна 1, число округляется в огромную сторону:

0011001 10011001 10011001 10011001 + 1 =

0011001 10011001 10011001 10011010

Порядок = -2 + 127 = 125 = 0111 11012

В итоге получаем:


Разобъем код числа на четверки и запишем его Кодирование вещественных чисел в 16-ом виде: 3E99999A.

Следует подразумевать, что в итоге округления значение числа изме­няется и в итоге мы получаем числа с определенной погрешностью.

К примеру число для числа 0.3 мы получаем код, соответственный числу 0.300000012

Определим наибольшее число и его точность при 4-хбай­товом пред­ставлении.

Наибольшее число:

1 .1…1 * 2127 2 * 2127 3.4 * 1038

Наибольшее значение мантиссы:

1…1 (24 единицы Кодирование вещественных чисел) = 224 – 1 = 16777216, как следует точность представления мантиссы 7 означающих цифр.


kogda-mladenci-ulibayutsya.html
kogda-mne-budet-pora-umirat-3-glava.html
kogda-mne-ispolnilos-70-let.html