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