C++ Builder 串口控件 | C++ Builder 编程技巧 | C++ Builder 操作指南 | C++ Builder 参考手册 | 基础知识 | cfloat 浮点数 | • 浮点数类型 | • 浮点数异常处理 | • _finite, _finitel | • _isinf, _isinfl | • _isnan, _isnanl | • _fpclass, _fpclassl | • _chgsign, _chgsignl | • _copysign, _copysignl | • _logb, _logbl | • _scalb, _scalbl | • _nextafter, _nextafterl | • _clear87, _clearfp | • _control87, _controlfp | • _status87, _statusfp | • _fpreset | cmath 数学函数 | cstdlib 标准库函数 | System 字符串 | System 日期和时间 | System.Math.hpp 数学函数 | 其他数据类型 | VCL 基础类 | VCL 应用程序 | Pictures 图片 | Graphics 绘图 | Additional 控件 | System 控件 | A ~ Z 字母顺序排列的目录 | 网友留言/技术支持 |
|
_logb, _logbl - 取出浮点数的指数部分 |
_logb, _logbl:取出浮点数的指数部分
函数原型:
double _logb(double x); |
long double _logbl(long double x); |
头文件:
#include <cfloat>
命名空间:
std
参数:
x:浮点数,定义域范围为 [-Infinity, +Infinity]
返回值:
提取浮点数的指数部分,得到的结果是整数值,按照对数函数的规则,x 为零或无穷大时函数的返回值为无穷大
从例子程序的运行结果来看,这一组函数的返回值为 x 的绝对值取以 2 为底的对数的整数部分,即 log2|x| 的整数部分
如果需要对数函数,请参考 log2、log、log1p 等函数
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add(L"_logb( 0 ) = " + FloatToStr(std::_logb( 0.0 )));
Memo1->Lines->Add(L"_logb( 0.125) = " + FloatToStr(std::_logb( 0.125 )));
Memo1->Lines->Add(L"_logb( 1 ) = " + FloatToStr(std::_logb( 1.0 )));
Memo1->Lines->Add(L"_logb( 2 ) = " + FloatToStr(std::_logb( 2.0 )));
Memo1->Lines->Add(L"_logb( 3 ) = " + FloatToStr(std::_logb( 3.0 )));
Memo1->Lines->Add(L"_logb(256 ) = " + FloatToStr(std::_logb(256.0 )));
Memo1->Lines->Add(L"_logb(1e100 ) = " + FloatToStr(std::_logb(1e100 )));
Memo1->Lines->Add(L"_logb( +∞ ) = " + FloatToStr(std::_logb( Infinity)));
Memo1->Lines->Add(L"_logb( -2 ) = " + FloatToStr(std::_logb( -2.0 )));
Memo1->Lines->Add(L"_logb( -∞ ) = " + FloatToStr(std::_logb(-Infinity)));
Memo1->Lines->Add(L"_logb(-1e100 ) = " + FloatToStr(std::_logb(-1e100 )));
} |
兼容性:
这一组函数不是标准 C/C++ 函数,只有 bcc32 支持。
从例子程序的运行结果来看,这一组函数的返回值为 x 的绝对值取以 2 为底的对数的整数部分,即 log2|x| 的整数部分
如果需要对数函数,请参考 log2、log、log1p 等函数
相关链接:
• log2 • log • log1p • _matherr • 浮点数异常处理
|
|
|
|