Η συνάρτηση frexp () στο C ++ σπάζει έναν αριθμό κινούμενου σημείου στη δυαδική του έννοια.
Η δυαδική έννοια είναι ένα κυμαινόμενο σημείο του οποίου η απόλυτη τιμή (mantissa) βρίσκεται στο διάστημα (0,5, 1) και ένας ακέραιος εκθέτης για 2.
Η συνάρτηση ορίζεται στο αρχείο κεφαλίδας.
Μαθηματικά,
x = Δυαδική έννοια * 2 εκθετική
όπου, ο εκθέτης αποθηκεύεται στην τοποθεσία που δείχνει το exp και η δυαδική έννοια είναι η τιμή που επιστρέφεται από το frexp ().
πρωτότυπο frexp () (από το πρότυπο C ++ 11)
διπλό frexp (διπλό x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); διπλό frexp (T x, int * exp); // Για ακέραιο τύπο
Η συνάρτηση frexp () παίρνει δύο ορίσματα και επιστρέφει την τιμή δυαδικής σημασίας του τύπου double
, float
ή long double
.
frexp () Παράμετροι
- x - Η τιμή που πρέπει να αποσυντεθεί.
- exp - Ο δείκτης σε ακέραιο αριθμό όπου θα αποθηκευτεί η τιμή του εκθέτη.
frexp () Επιστροφή τιμή
Η συνάρτηση frexp () επιστρέφει το δυαδικό σήμα του οποίου η απόλυτη τιμή βρίσκεται στο διάστημα (0,5, 1). Εάν το x είναι μηδέν, τόσο το σημαντικό όσο και το εκθετικό είναι μηδέν.
τιμές επιστροφής frexp ()Παράμετρος (x) | Δυαδικό σήμα | Εκθέτης |
---|---|---|
0 | 0 | 0 |
x> = 1 | Θετικός | Θετικός |
x <= -1 | Αρνητικός | Θετικός |
-1 <x <0 | Αρνητικός | Αρνητικός |
0 <x <1 | Θετικός | Αρνητικός |
Παράδειγμα 1: Πώς λειτουργεί η λειτουργία frexp () στο 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; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
6,81 = 0,85125 * 2 3
Παράδειγμα 2: συνάρτηση frexp () με ακέραιο τύπο
#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; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
25 = 0,78125 * 2 5