C ++: n ilogb () -funktio palauttaa | x |: n logaritmin kiinteän osan käyttäen logaritmin perustana FLT_RADIX.
Tämä määritetään otsikkotiedostossa.
Matemaattisesti,
x = merkitsevä * FLT_RADIXeksponentti
merkitsevä on vaihteluvälin arvo alueella (1.0, 2.0), x on ilogb: lle () välitetty argumentti ja eksponentti on ilogb: n () palauttama kokonaisluku. FLT_RADIX-arvon arvo on yleensä 2.
Ilogb (): n palauttama arvo on yksi pienempi kuin frexp () -funktion tuottama eksponentti, koska merkitsevä arvo on alueella (1,0, 2,0) (0,5, 1,0): n kuten frexp: ssä).
ilogb () -prototyyppi (standardin C ++ 11 mukaan)
int ilogb (kaksinkertainen x); int ilogb (float x); int ilogb (pitkä kaksinkertainen x); int ilogb (Tx); // integraalityypille
ilogb () -parametrit
Funktio ilogb () vie yhden argumentin, jonka ilogb lasketaan.
ilogb () Palautusarvo
Funktio ilogb () palauttaa | x |: n logaritmin kiinteän osan käyttäen logaritmin perustana FLT_RADIX.
- Jos argumentti on 0, se palauttaa arvon FP_LOGB0.
- Jos argumentti on NaN, se palauttaa arvon FP_LOGBNAN.
- Jos argumentti on ääretön, se palauttaa INT_MAX.
Esimerkki 1: Kuinka ilogb () -toiminto toimii C ++: ssa?
#include #include #include using namespace std; int main() ( int result; double significand; double x = 16.81; result = ilogb(x); significand = x / pow(FLT_RADIX, result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Esimerkki 2: funktio ilogb () integraalityypillä
#include #include #include using namespace std; int main() ( int result, x = 19; result = ilogb(x); double significand = x/pow(FLT_RADIX,result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
ilogb (19) = 4 19 = 1,1875 * 2 4