C ++ frexp () - C ++ Standart Kitaplığı

C ++ 'daki frexp () işlevi, bir kayan nokta sayısını ikili anlamına böler.

İkili anlamlı, mutlak değeri (mantis) aralıkta (0.5, 1) ve 2 için bir tamsayı üssü olan kayan bir noktadır.

İşlev, başlık dosyasında tanımlanır.

Matematiksel olarak,

x = İkili anlamlı * 2 üs

burada üs, exp ile gösterilen konumda saklanır ve İkili anlamı frexp () tarafından döndürülen değerdir.

frexp () prototipi (C ++ 11 standardından itibaren)

çift ​​frexp (çift x, int * exp); float frexp (float x, int * exp); uzun çift frexp (uzun çift x, int * exp); çift ​​frexp (T x, int * exp); // İntegral türü için

Frexp () işlev, iki bağımsız değişken ve tip ikili significand değerini verir double, floatya da long double.

frexp () Parametreler

  • x - Ayrıştırılacak değer.
  • exp - Üs değerinin depolanacağı bir tamsayı için işaretçi.

frexp () Dönüş değeri

Frexp () işlevi, mutlak değeri (0,5, 1) aralığında bulunan ikili anlamı döndürür. X sıfırsa, hem anlamlı hem de üs sıfırdır.

frexp () dönüş değerleri
Parametre (x) Binary Significand Üs
0 0 0
x> = 1 Pozitif Pozitif
x <= -1 Olumsuz Pozitif
-1 <x <0 Olumsuz Olumsuz
0 <x <1 Pozitif Olumsuz

Örnek 1: frexp () işlevi C ++ 'da nasıl çalışır?

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

Programı çalıştırdığınızda, çıktı:

 6,81 = 0,85125 * 2 3 

Örnek 2: integral tipli frexp () fonksiyonu

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

Programı çalıştırdığınızda, çıktı:

 25 = 0,78125 * 2 5 

Ilginç makaleler...