C ++ frexp () - C ++ Standardbibliotek

Frexp () -funktionen i C ++ bryder et flydende nummer i dets binære betydning.

Den binære betydning er et flydende punkt, hvis absolutte værdi (mantissa) ligger i intervallet (0,5, 1) og et heltalsexponent for 2.

Funktionen er defineret i header-fil.

Matematisk,

x = Binær signifikant * 2 eksponent

hvor eksponent er gemt på det sted, der er peget af exp, og den binære betydning er den værdi, der returneres af frexp ().

frexp () prototype (pr. C ++ 11 standard)

dobbelt frexp (dobbelt x, int * exp); float frexp (float x, int * exp); lang dobbelt frexp (lang dobbelt x, int * exp); dobbelt frexp (T x, int * exp); // For integreret type

Funktionen frexp () tager to argumenter og returnerer den binære signifikante værdi af typen double, floateller long double.

frexp () Parametre

  • x - Værdien, der skal nedbrydes.
  • exp - Markøren til et heltal, hvor værdien af ​​eksponenten skal lagres.

frexp () Returværdi

Funktionen frexp () returnerer den binære signifikans, hvis absolutte værdi ligger i intervallet (0,5, 1). Hvis x er nul, er både signifikant og eksponent nul.

frexp () returnerer værdier
Parameter (x) Binær betydning Eksponent
0 0 0
x> = 1 Positiv Positiv
x <= -1 Negativ Positiv
-1 <x <0 Negativ Negativ
0 <x <1 Positiv Negativ

Eksempel 1: Hvordan fungerer frexp () -funktionen i 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; ) 

Når du kører programmet, vil output være:

 6,81 = 0,85125 * 2 3 

Eksempel 2: frexp () -funktion med integreret type

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

Når du kører programmet, vil output være:

 25 = 0,78125 * 2 5 

Interessante artikler...