Funkcija ilogb () C ++ grąžina integralią | x | logaritmo dalį, naudodama FLT_RADIX kaip pagrindą logaritmui.
Tai apibrėžta antraštės faile.
Matematiškai,
x = reikšmingas * FLT_RADIXeksponentas
Reikšmė yra slankiojo kablelio reikšmė diapazone (1.0, 2.0), x yra argumentas, perduotas ilogb (), o rodiklis yra ilogb () grąžinta sveiko skaičiaus vertė. FLT_RADIX vertė paprastai yra 2.
„Ilogb“ () grąžinta vertė yra viena mažesnė už rodiklį, kurį generuoja „frexp“ () funkcija, nes reikšmė yra diapazone (1.0, 2.0), o ne (0.5, 1.0), kaip frexp ().
ilogb () prototipas (Pagal C ++ 11 standartą)
int ilogb (dvigubas x); int ilogb (plūduriuojantis x); int ilogb (ilgas dvigubas x); int ilogb (T x); // integraliniam tipui
ilogb () parametrai
Funkcija ilogb () apima vieną argumentą, kurio ilogb yra apskaičiuojamas.
ilogb () Grąžinimo vertė
Funkcija ilogb () grąžina integralią | x | logaritmo dalį, naudodama FLT_RADIX kaip pagrindą logaritmui.
- Jei argumentas yra 0, jis grąžina FP_LOGB0.
- Jei argumentas yra NaN, jis grąžina FP_LOGBNAN.
- Jei argumentas yra begalinis, jis pateikia INT_MAX.
1 pavyzdys: Kaip funkcija ilogb () veikia C ++?
#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; )
Kai paleisite programą, išvestis bus:
ilogb (16.81) = 4 16.81 = 1.05062 * 2 4
2 pavyzdys: ilogb () funkcija su integraliniu tipu
#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; )
Kai paleisite programą, išvestis bus:
ilogb (19) = 4 19 = 1,1875 * 2 4