define double constant as hexadecimal?
问题 I would like to have the closest number below 1.0 as a floating point. By reading wikipedia's article on IEEE-754 I have managed to find out that the binary representation for 1.0 is 3FF0000000000000 , so the closest double value is actually 0x3FEFFFFFFFFFFFFF . The only way I know of to initialize a double with this binary data is this: double a; *((unsigned*)(&a) + 1) = 0x3FEFFFFF; *((unsigned*)(&a) + 0) = 0xFFFFFFFF; Which is rather cumbersome to use. Is there any better way to define this