Битовый массив, который вы показываете, 0 10000001 01001100110011001100110
, предназначен для базового 32-битного двоичного представления IEEE-754 с плавающей запятой, часто используемого для float
.Вы запрашиваете представление double
, которое часто использует базовый 64-разрядный двоичный код IEEE-754.
Показанные вами байты cdcc cccc cccc 1440
представляют собой представление 5.2 в порядке с прямым порядком байтов.В старшем байте первый бит в позиции 0x80
равен нулю.Это знаковый бит, а ноль означает положительный.Следующие семь битов 0x40
и четыре байта от следующего байта 1
из 0x14
являются показателем степени.Вместе они 0x401
.Экспонента смещена на 0x3ff
.Таким образом, с показателем степени, закодированным как 0x401
, фактический показатель степени равен 2, что означает 2 2 .
Остальные биты кодируют значение и.Они 0x4cccccccccccd
.Для нормальных чисел значение33 ставится после «радикальной точки» (общего эквивалента десятичной точки) с 1 перед точкой: 1,4cccccccccccd 16 .В десятичной системе, то есть примерно 1,3 (точно 1.3000000000000000444089209850062616169452667236328125). * * * Тысяча двадцать один тысяча двадцать два * вместе, значение равно + 2 * 2 * тысяча двадцать-три • 1.3000000000000000444089209850062616169452667236328125 = 5.20000000000000017763568394002504646778106689453125.