Fungsi frexp () dalam C ++ memecahkan nombor titik terapung ke dalam makna binari.
Nilai perduaan adalah titik terapung yang nilai mutlaknya (mantissa) terletak pada selang (0.5, 1) dan eksponen integer untuk 2.
Fungsi ditentukan dalam fail header.
Secara matematik,
x = Nilai perduaan * 2 eksponen
di mana, eksponen disimpan di lokasi yang ditunjukkan oleh exp dan makna Binary adalah nilai yang dikembalikan oleh frexp ().
prototaip frexp () (Seperti standard C ++ 11)
double frexp (double x, int * exp); float frexp (float x, int * exp); frexp berganda panjang (x panjang ganda, int * exp); frexp berganda (T x, int * exp); // Untuk jenis kamiran
Fungsi frexp () mengambil dua argumen dan mengembalikan nilai makna binari jenis double
, float
atau long double
.
frexp () Parameter
- x - Nilai yang akan diuraikan.
- exp - Penunjuk ke integer di mana nilai eksponen akan disimpan.
frexp () Nilai pulangan
Fungsi frexp () mengembalikan makna binari yang nilai mutlaknya terletak pada selang waktu (0.5, 1). Sekiranya x adalah sifar, kedua signifikan dan eksponen adalah sifar.
nilai pulangan frexp ()Parameter (x) | Penting Perduaan | Eksponen |
---|---|---|
0 | 0 | 0 |
x> = 1 | Positif | Positif |
x <= -1 | Negatif | Positif |
-1 <x <0 | Negatif | Negatif |
0 <x <1 | Positif | Negatif |
Contoh 1: Bagaimana fungsi frexp () berfungsi di 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; )
Semasa anda menjalankan program, outputnya adalah:
6.81 = 0.85125 * 2 3
Contoh 2: fungsi frexp () dengan jenis kamiran
#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; )
Semasa anda menjalankan program, outputnya adalah:
25 = 0.78125 * 2 5