Я читал, что они хранятся в виде мантиссы и экспоненты
Я читал этот документ, но ничего не смог понять.
Чтобы понять, как они хранятся, вы должны сначала понять, что они из себя представляют и с какими ценностями они должны обращаться.
В отличие от целых чисел, значение с плавающей точкой предназначено для представления как чрезвычайно малых значений, так и чрезвычайно больших. Для обычных 32-битных значений с плавающей запятой это соответствует значениям в диапазоне от 1.175494351 * 10 ^ -38 до 3.40282347 * 10 ^ + 38 .
.Очевидно, что, используя только 32 бита, невозможно сохранить каждую цифру в таких числах.
Когда дело доходит до представления, вы можете видеть все нормальные числа с плавающей запятой как значение в диапазоне от 1,0 до (почти) 2,0, масштабированное со степенью двойки. Так что 1.0 - это просто 1,0 * 2 ^ 0 . 2,0 составляет 1,0 * 2 ^ 1 . -5,0 -1,25 * 2 ^ 2 .
Итак, что нужно, чтобы закодировать это настолько эффективно, насколько это возможно? Что нам действительно нужно?
Это кодируется следующим образом, в соответствии со стандартом IEEE-754 с плавающей запятой.
В дополнение к обычным значениям с плавающей запятой, существует ряд специальных значений:
Наконец, ниже приводится несколько конкретных примеров (все значения в шестнадцатеричном формате):
Мантисса представляет наиболее значимые биты числа.
Показатель степени показывает, сколько смен должно быть выполнено на мантиссе, чтобы получить фактическое значение числа.
Кодировка определяет, как представлены знак мантиссы и знак экспоненты (в основном, смещается ли влево или вправо).
В документе, на который вы ссылаетесь, указывается кодировка IEEE, наиболее широко используемая.