Бих искал да имам най-близкото число под 1,0 като плаваща запетая. Като прочетох статията в wikipedia за IEEE-754 успях да разбера че двоичното представяне за 1.0 е 3FF0000000000000
, така че най-близката двойна стойност всъщност е 0x3FEFFFFFFFFFFFFF
.
Единственият начин, който знам за инициализиране на двойно с тези двоични данни, е следният:
double a;
*((unsigned*)(&a) + 1) = 0x3FEFFFFF;
*((unsigned*)(&a) + 0) = 0xFFFFFFFF;
Което е доста тромаво за използване.
Има ли по-добър начин да се дефинира това двойно число, ако е възможно като константа?