我想将1.0以下最接近的数字作为浮点数.通过阅读维基百科在
IEEE-754的
文章,我已经设法发现1.0的二进制表示是3FF0000000000000,所以最接近的double值实际上是0x3FEFFFFFFFFFFFFF.
我知道使用这个二进制数据初始化double的唯一方法是:
double a;
*((unsigned*)(&a) + 1) = 0x3FEFFFFF;
*((unsigned*)(&a) + 0) = 0xFFFFFFFF;
使用起来相当麻烦.
有没有更好的方法来定义这个双号,如果可能的话,作为常量?