C ++ frexp () - C ++ standartinė biblioteka

C ++ funkcija „frexp ()“ skaido slankiojo kablelio skaičių į dvejetainį reikšmingumą.

Dvejetainis reikšmingumas yra slankusis taškas, kurio absoliuti vertė (mantissa) yra intervale (0,5, 1) ir sveikasis skaičius, reiškiantis 2.

Funkcija apibrėžta antraštės faile.

Matematiškai,

x = Dvejetainis reikšmė * 2 rodiklis

kur, eksponentas yra saugomas exp nurodytoje vietoje, o dvejetainis reikšmė yra vertė, kurią grąžina frexp ().

„frexp“ () prototipas (pagal standartą C ++ 11)

dvigubas frexp (dvigubas x, int * exp); „float frexp“ („float x“, int * exp); ilgas dvigubas frexp (ilgas dvigubas x, int * exp); dvigubas frexp (T x, int * exp); // integraliniam tipui

Frexp () funkcija trunka du argumentus ir grąžina dvejetainis significand vertę tipo double, floatarba long double.

frexp () parametrai

  • x - suskaidoma vertė.
  • exp - rodiklis iki sveiko skaičiaus, kuriame turi būti saugoma rodiklio reikšmė.

frexp () Grąžinimo vertė

Funkcija „frexp“ () grąžina dvejetainę reikšmę, kurios absoliuti reikšmė yra intervale (0,5, 1). Jei x yra nulis, tiek reikšmė, tiek rodiklis yra nulis.

„frexp“ () grąžinimo reikšmės
Parametras (x) Dvejetainis reikšmingumas Eksponentas
0 0 0
x> = 1 Teigiamas Teigiamas
x <= -1 Neigiamas Teigiamas
-1 <x <0 Neigiamas Neigiamas
0 <x <1 Teigiamas Neigiamas

1 pavyzdys: Kaip veikia frexp () funkcija 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; ) 

Kai paleisite programą, išvestis bus:

 6,81 = 0,85125 * 2 3 

2 pavyzdys: funkcija „frexp ()“ su integraliniu tipu

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

Kai paleisite programą, išvestis bus:

 25 = 0,78125 * 2 5 

Įdomios straipsniai...