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
, float
ya 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ğerleriParametre (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