std::logb
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <cmath>
|
||
| float logb( float arg ); |
(C++11 起) | |
| double logb( double arg ); |
(C++11 起) | |
| long double logb( long double arg ); |
(C++11 起) | |
| double logb( Integral arg ); |
(C++11 起) | |
提取的指数值从浮点参数
r|arg|组成部分,作为一个符号浮点值,非零阿根廷,在那里
arg,并返回一个浮点值。从形式上看,结果是logr|arg|组成部分,作为一个符号浮点值,非零阿根廷,在那里
r是std::numeic_limits<T>::radixT是浮点类型的arg。 arg是低于正常,它被视为仿佛被归.Original:
Extracts the value of the exponent from the floating-point argument
r|arg| as a signed floating-point value, for non-zero arg, where
arg, and returns it as a floating-point value. Formally, the result is the integral part of logr|arg| as a signed floating-point value, for non-zero arg, where
r is std::numeic_limits<T>::radix and T is the floating-point type of arg. If arg is subnormal, it is treated as though it was normalized.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 参数
| arg | - | 浮点值
Original: floating point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[编辑] 返回值
浮点指数.
Original:
The floating-point exponent.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
域或范围可能会出现错误,如果
arg是零.Original:
Domain or range error may occur if
arg is zero.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 注释
指数的值返回std::logb始终是1小于由std::frexp因为不同的正常化要求重新调谐指数:经由
|是介于1和
|之间0.5和1.
e指数std::logb|arg*r-e|是介于1和
r(通常之间1和2),但对于指数e返回std::frexp,|arg*2-e|之间0.5和1.
Original:
The value of the exponent returned by std::logb is always 1 less than the exponent retuned by std::frexp because of the different normalization requirements: for the exponent
| is between 1 and
| is between 0.5 and 1.
e returned by std::logb, |arg*r-e| is between 1 and
r (typically between 1 and 2), but for the exponent e returned by std::frexp, |arg*2-e| is between 0.5 and 1.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 为例
比较不同的浮点分解的功能
Original:
Compares different floating-point decomposition functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <cmath> #include <limits> int main() { double f = 123.45; std::cout << "Given the number " << f << " or " << std::hexfloat << f << std::defaultfloat << " in hex,\n"; double f3; double f2 = std::modf(f, &f3); std::cout << "modf() makes " << f3 << " + " << f2 << '\n'; int i; f2 = std::frexp(f, &i); std::cout << "frexp() makes " << f2 << " * 2^" << i << '\n'; i = std::ilogb(f); std::cout << "logb()/ilogb() make " << f/std::scalbn(1.0, i) << " * " << std::numeric_limits<double>::radix << "^" << std::ilogb(f) << '\n'; }
Output:
Given the number 123.45 or 0x1.edccccccccccdp+6 in hex, modf() makes 123 + 0.45 frexp() makes 0.964453 * 2^7 logb()/ilogb() make 1.92891 * 2^6
[编辑] 另请参阅
| 分解一个数字,位数和电源2 Original: decomposes a number into significand and a power of 2 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) | |
| (C++11) |
提取指数的数量 Original: extracts exponent of the number The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) |
| (C++11) (C++11) |
FLT_RADIX次方乘以一个数 Original: multiplies a number by FLT_RADIX raised to a power The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) |