C ++ frexp () - C ++ Standardbibliothek

Die Funktion frexp () in C ++ zerlegt eine Gleitkommazahl in ihren binären Signifikanten.

Der binäre Signifikand ist ein Gleitkomma, dessen Absolutwert (Mantisse) im Intervall (0,5, 1) liegt, und ein ganzzahliger Exponent für 2.

Die Funktion ist in der Header-Datei definiert.

Mathematisch,

x = Binärbedeutung * 2 Exponent

Dabei wird der Exponent an der Stelle gespeichert, auf die exp zeigt, und der binäre Signifikand ist der von frexp () zurückgegebene Wert.

Frexp () -Prototyp (ab C ++ 11-Standard)

double frexp (double x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); doppeltes frexp (T x, int * exp); // Für integralen Typ

Die frexp () Funktion nimmt zwei Argumente und gibt den binären Wert der Mantisse Typs double, floatoder long double.

frexp () Parameter

  • x - Der zu zerlegende Wert.
  • exp - Der Zeiger auf eine Ganzzahl, in der der Wert des Exponenten gespeichert werden soll.

frexp () Rückgabewert

Die Funktion frexp () gibt den binären Signifikanten zurück, dessen absoluter Wert im Intervall (0,5, 1) liegt. Wenn x Null ist, sind sowohl der Signifikant als auch der Exponent Null.

frexp () gibt Werte zurück
Parameter (x) Binäre Bedeutung Exponent
0 0 0
x> = 1 Positiv Positiv
x <= -1 Negativ Positiv
-1 <x <0 Negativ Negativ
0 <x <1 Positiv Negativ

Beispiel 1: Wie funktioniert die Funktion frexp () in C ++?

 #include #include using namespace std; int main () ( double x = 6.81, significand; int *exp; significand = frexp(x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 6,81 = 0,85125 * 2 3 

Beispiel 2: frexp () -Funktion mit Integraltyp

 #include #include using namespace std; int main () ( double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 25 = 0,78125 * 2 5 

Interessante Beiträge...