我想知道为什么DBL_MANT_DIG设置为53,即使ieee 754标准使用52尾数位。它也计算符号位吗?
事实上,二进制IEE754表示包括一个隐藏位:尾数的前导位对于普通数字来说必须是1,因此它不需要存储。所以尾数实际上是前导1位加上其他52位,给出了…53
维基百科的参考文献(强调我的):
对于指数在正常范围内的数字(指数字段既不是全1也不是全0),有效数的前导位将始终为1。因此,前导1可以隐含而不是显式存在于内存编码中,并且在标准下,显式表示的有效数部分将位于0和1之间。此规则称为前导位约定、隐式位约定或隐藏位约定。此规则允许二进制格式具有额外的精度位。