Шестнадцатеричное значение в вашем вопросе показывает биты, используемые для представления числа с плавающей запятой в базовом 64-битном двоичном формате IEEE-754.
Первый бит, 0, является знаком.0 означает положительное значение.
Следующие 11 битов, 416 16 , кодируют показатель степени.416 16 - это 1046 10 .Код смещен на 1023, что означает, что фактическая мощность 2, которую он представляет, равна 2 1046-1023 = 2 23 .
Остальные 52 бита кодируют значение и (дробь) часть числа.Эти биты являются 4ACFCE33404EA 16 .Чтобы получить действительное значение и из этого кода, мы пишем их как «1.», а затем код: 1.4ACFCE33404EA 16 .В десятичном формате это 1,292233359825611049842564170830883085727691650390625 10 .
Когда мы умножаем значимое на 2 23 , результат равен 10840039.1000999994575977325439453125.Это значение, представленное битами 4164ACFCE33404EA 16 .
Примечания
Использование «1.» со значениеми для нормальных чисел, где закодированный показатель степенине 0 или его максимальное значение.Если код экспоненты равен нулю, число либо ноль, либо субнормальное, и вместо него используется «0.».Если код экспоненты является его максимальным значением (2047 для 64-битного формата), объект с плавающей запятой представляет либо бесконечность (если все значащие биты равны нулю), либо NaN.
В 64-В битовом формате шестнадцатеричные цифры совпадают с границей между полем экспоненты и полем значимости.В других форматах, таких как 32-битный формат, вам придется сдвигать некоторые биты для разделения полей, а не просто извлекать шестнадцатеричные цифры визуально.