C ++ frexp () - C ++ - vakiokirjasto

C ++: n frexp () -funktio jakaa liukuluvun binäärimerkkinsä.

Binaarinen merkitys on kelluva piste, jonka absoluuttinen arvo (mantissa) on välissä (0,5, 1) ja kokonaislukun eksponentissa 2.

Toiminto määritetään otsikkotiedostossa.

Matemaattisesti,

x = Binaarinen merkitys * 2 -eksponentti

missä eksponentti tallennetaan exp: n osoittamaan sijaintiin ja Binary-merkintä on frexp: n () palauttama arvo.

frexp () -prototyyppi (standardin C ++ 11 mukaan)

kaksinkertainen frexp (kaksinkertainen x, int * exp); float frexp (float x, int * exp); pitkä kaksinkertainen frexp (pitkä kaksinkertainen x, int * exp); kaksinkertainen frexp (T x, int * exp); // integraalityypille

Frexp () funktio vaatii kaksi argumenttia ja palauttaa binaarinen significand arvo tyypin double, floattai long double.

frexp () -parametrit

  • x - hajotettava arvo.
  • exp - Osoitin kokonaislukuun, johon eksponentin arvo on tarkoitus tallentaa.

frexp () Palautusarvo

Funktio frexp () palauttaa binäärimerkinnän, jonka absoluuttinen arvo on välissä (0,5, 1). Jos x on nolla, sekä merkitsevä että eksponentti ovat nolla.

frexp () -palautusarvot
Parametri (x) Binaarinen merkitys Eksponentti
0 0 0
x> = 1 Positiivinen Positiivinen
x <= -1 Negatiivinen Positiivinen
-1 <x <0 Negatiivinen Negatiivinen
0 <x <1 Positiivinen Negatiivinen

Esimerkki 1: Kuinka frexp () -funktio toimii C ++: ssa?

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

Kun suoritat ohjelmaa, tulos on:

 6,81 = 0,85125 * 2 3 

Esimerkki 2: frexp () -funktio integraalityypillä

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

Kun suoritat ohjelmaa, tulos on:

 25 = 0,78125 * 2 5 

Mielenkiintoisia artikkeleita...