C++ 了解logb()的工作原理

C++ 了解logb()的工作原理,c++,c,C++,C,我试图理解logb()的工作原理,它说“logb()函数计算x的指数,x是$\log_r^{x|}$的整数部分,作为有符号浮点值,用于非零x,其中r是机器浮点运算的基数。” 我想知道如何为特定机器计算此r?您可以使用标题中的模板std::numeric\u limits查询给定机器上的给定浮点类型 #包括 标准::数值限制::基数; FLT\u基数在中。在现实世界中,它总是2,IEEE浮点要求它是2。@ R.IEEE 74-2008实际上指定基数2和基数10 F-P算法。然而IEEE 754符合

我试图理解
logb()
的工作原理,它说“logb()函数计算x的指数,x是$\log_r^{x|}$的整数部分,作为有符号浮点值,用于非零x,其中r是机器浮点运算的基数。”

我想知道如何为特定机器计算此
r

您可以使用标题
中的模板
std::numeric\u limits
查询给定机器上的给定浮点类型

#包括
标准::数值限制::基数;

FLT\u基数
中。在现实世界中,它总是2,IEEE浮点要求它是2。

@ R.IEEE 74-2008实际上指定基数2和基数10 F-P算法。然而IEEE 754符合C或C++实现使用32位和64位(单精度和双精度)。无论是否存在十进制扩展名,
float
double
类型的二进制浮点。下一个C和C++标准修订版可能包含小数浮点的新类型。
#include <limits>

std::numeric_limits<float>::radix;