C ++ ilogb () - Libreria standard C ++

La funzione ilogb () in C ++ restituisce la parte integrale del logaritmo di | x |, utilizzando FLT_RADIX come base per il logaritmo.

Questo è definito nel file di intestazione.

Matematicamente,

 x = significando * FLT_RADIXesponente

significand è un valore in virgola mobile nell'intervallo (1.0, 2.0), x è l'argomento passato a ilogb () e exponent è il valore intero restituito da ilogb (). Il valore di FLT_RADIX è generalmente 2.

Il valore restituito da ilogb () è uno in meno rispetto all'esponente generato dalla funzione frexp (), poiché il significante è compreso nell'intervallo (1.0, 2.0) invece di (0.5, 1.0) come in frexp ().

Prototipo ilogb () (come dallo standard C ++ 11)

int ilogb (doppia x); int ilogb (float x); int ilogb (lunga doppia x); int ilogb (T x); // Per il tipo integrale

Parametri ilogb ()

La funzione ilogb () accetta un singolo argomento di cui viene calcolato ilogb.

ilogb () Restituisce il valore

La funzione ilogb () restituisce la parte integrale del logaritmo di | x |, utilizzando FLT_RADIX come base per il logaritmo.

  • Se l'argomento è 0, restituisce FP_LOGB0.
  • Se l'argomento è NaN, restituisce FP_LOGBNAN.
  • Se l'argomento è infinito, restituisce INT_MAX.

Esempio 1: come funziona la funzione ilogb () in 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; ) 

Quando esegui il programma, l'output sarà:

 ilogb (16,81) = 4 16,81 = 1,05062 * 2 4 

Esempio 2: funzione ilogb () con tipo integrale

 #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; ) 

Quando esegui il programma, l'output sarà:

 ilogb (19) = 4 19 = 1,1875 * 2 4

Articoli interessanti...