Я хотел бы иметь ближайшее число ниже 1.0 в виде числа с плавающей запятой. Читая статью в Википедии о IEEE-754 , мне удалось выяснить, что двоичное представление для 1.0 - 3FF0000000000000
, поэтому ближайшее двойное значение на самом деле 0x3FEFFFFFFFFFFFFF
.
Единственный известный мне способ инициализировать двойное число этими двоичными данными - это:
double a;
*((unsigned*)(&a) + 1) = 0x3FEFFFFF;
*((unsigned*)(&a) + 0) = 0xFFFFFFFF;
Что довольно громоздко в использовании.
Есть ли лучший способ определить это двойное число, если возможно, в качестве константы?