C ++ frexp () - standardní knihovna C ++

Funkce frexp () v C ++ rozdělí číslo s plovoucí desetinnou čárkou na jeho binární význam.

Binární význam je plovoucí desetinná čárka, jejíž absolutní hodnota (mantisa) leží v intervalu (0,5, 1) a celočíselný exponent pro 2.

Funkce je definována v hlavičkovém souboru.

Matematicky,

x = exponent binárního významu * 2

kde exponent je uložen v místě, na které ukazuje exp a Binární význam je hodnota vrácená frexp ().

frexp () prototyp (od standardu C ++ 11)

double frexp (double x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); double frexp (T x, int * exp); // Pro integrální typ

Funkce frexp () trvá dva argumenty a vrací binární významovou hodnotu typu double, floatnebo long double.

parametry frexp ()

  • x - Hodnota, která má být rozložena.
  • exp - Ukazatel na celé číslo, kde má být uložena hodnota exponenta.

frexp () Návratová hodnota

Funkce frexp () vrací binární význam, jehož absolutní hodnota leží v intervalu (0,5, 1). Pokud je x nula, znaménko i exponent jsou nulové.

návratové hodnoty frexp ()
Parametr (x) Binární význam Exponent
0 0 0
x> = 1 Pozitivní Pozitivní
x <= -1 Negativní Pozitivní
-1 <x <0 Negativní Negativní
0 <x <1 Pozitivní Negativní

Příklad 1: Jak funguje funkce frexp () v 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; ) 

Když spustíte program, výstup bude:

 6,81 = 0,85125 * 2 3 

Příklad 2: funkce frexp () s integrálním typem

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

Když spustíte program, výstup bude:

 25 = 0,78125 * 2 5 

Zajímavé články...