gpt4 book ai didi

c++ - 如何确定 float, double 的有效位宽度 : Is there a standard definition?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:22 34 4
gpt4 key购买 nike

在 C 或 C++ 中,是否有一种标准方式来确定 double 的尾数宽度?我知道 IEEE-754 格式的 double 以 53 位存储有效数,但我想避免在我的代码中使用“魔数(Magic Number)”。

在 Linux 上,文件 usr/include/ieee754.h 存在,但它描述了在结构中使用位字段的格式,我无法确定(在编译时)的大小。

仅 Linux 的解决方案是可以接受的。

最佳答案

使用 FLT_MANT_DIGDBL_MANT_DIG , 在 <float.h> 中定义:

#include <float.h>
#include <stdio.h>


#if FLT_RADIX != 2
#error "Floating-point base is not two."
#endif


int main(void)
{
printf("There are %d bits in the significand of a float.\n",
FLT_MANT_DIG);
printf("There are %d bits in the significand of a double.\n",
DBL_MANT_DIG);
}

关于c++ - 如何确定 float, double 的有效位宽度 : Is there a standard definition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56872769/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com