Для поплавков IEEE754 это довольно просто.Запустите Online Float Calculator и читайте дальше.
Все чистые силы 2 представлены мантиссой 0
, которая на самом деле 1.0
из-за подразумеваемого ведущего 1.показатель степени корректируется смещением, поэтому 1 и 0,5 соответственно равны 1,0 × 2 0 и 1,0 × 2 −1 или в двоичном виде:
S Ex + 127 Mantissa - 1 Hex
1: 0 01111111 00000000000000000000000 0x3F800000
+ 0 + 127 1.0
0.5: 0 01111110 00000000000000000000000 0x3F000000
+ -1 + 127 1.0
Счисла с плавающей запятой, представленные в этой форме, упорядочены в том же порядке, что и их двоичное представление, нам нужно только взять разность интегрального значения двоичного представления и сделать вывод, что 0x800000 = 2 23 ,т. е. 8 388 608 значений с плавающей запятой одинарной точности в интервале [0,5, 1,0).
Аналогично, ответ составляет 2 52 для double
и 2 63 дляlong double
.