C ++ frexp () - Standardna knjižnica C ++

Funkcija frexp () v jeziku C ++ razbije število s plavajočo vejico v svoj binarni pomen in.

Binarni pomen je plavajoča vejica, katere absolutna vrednost (mantissa) je v intervalu (0,5, 1) in celoštevilčni eksponent za 2.

Funkcija je definirana v glavi datoteke.

Matematično,

x = binarni pomen in * 2 eksponent

kjer je eksponent shranjen na mestu, ki ga kaže exp, Binarni pomen pa je vrednost, ki jo vrne frexp ().

prototip frexp () (od standarda C ++ 11)

dvojni frexp (dvojni x, int * exp); float frexp (float x, int * exp); dolgi dvojni frexp (dolgi dvojni x, int * exp); dvojni frexp (T x, int * exp); // Za integralni tip

Funkcija frexp () vzame dva argumenta in vrne binarno vrednost in vrednost tipa double, floatali long double.

parametri frexp ()

  • x - Vrednost, ki jo je treba razgraditi.
  • exp - kazalec na celo število, v katerem naj bo shranjena vrednost eksponenta.

frexp () Vrnjena vrednost

Funkcija frexp () vrne binarni pomen in katerega absolutna vrednost je v intervalu (0,5, 1). Če je x nič, sta tako pomen kot eksponent enaka nič.

vrnjene vrednosti frexp ()
Parameter (x) Binarni označevalec Eksponent
0 0 0
x> = 1 Pozitivno Pozitivno
x <= -1 Negativno Pozitivno
-1 <x <0 Negativno Negativno
0 <x <1 Pozitivno Negativno

Primer 1: Kako deluje funkcija frexp () v jeziku 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; ) 

Ko zaženete program, bo rezultat:

 6,81 = 0,85125 * 2 3 

Primer 2: funkcija frexp () z integriranim tipom

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

Ko zaženete program, bo rezultat:

 25 = 0,78125 * 2 5 

Zanimive Članki...