Η συνάρτηση ilogb () στο C ++ επιστρέφει το αναπόσπαστο μέρος του λογάριθμου του | x |, χρησιμοποιώντας το FLT_RADIX ως βάση για τον λογάριθμο.
Αυτό ορίζεται στο αρχείο κεφαλίδας.
Μαθηματικά,
x = σημασία * FLT_RADIXεκτεταμένο
Το σήμα είναι τιμή κυμαινόμενου σημείου στο εύρος (1.0, 2.0), x είναι το όρισμα που μεταβιβάζεται στο ilogb () και ο εκθέτης είναι η ακέραια τιμή που επιστρέφεται από το ilogb (). Η τιμή του FLT_RADIX είναι γενικά 2.
Η τιμή που επιστρέφεται από το ilogb () είναι μικρότερη από τον εκθέτη που δημιουργείται από τη συνάρτηση frexp (), καθώς η σημασία είναι στην περιοχή (1.0, 2.0) αντί για (0.5, 1.0) όπως στο frexp ().
πρωτότυπο ilogb () (Από το πρότυπο C ++ 11)
int ilogb (διπλό x); int ilogb (float x); int ilogb (μακρύ διπλό x); int ilogb (T x); // Για ακέραιο τύπο
ilogb () Παράμετροι
Η συνάρτηση ilogb () παίρνει ένα μόνο όρισμα του οποίου υπολογίζεται το ilogb.
ilogb () Τιμή επιστροφής
Η συνάρτηση ilogb () επιστρέφει το αναπόσπαστο τμήμα του λογάριθμου | x |, χρησιμοποιώντας το FLT_RADIX ως βάση για τον λογάριθμο.
- Εάν το όρισμα είναι 0, επιστρέφει FP_LOGB0.
- Εάν το όρισμα είναι NaN, επιστρέφει FP_LOGBNAN.
- Εάν το όρισμα είναι άπειρο, επιστρέφει INT_MAX.
Παράδειγμα 1: Πώς λειτουργεί η λειτουργία ilogb () στο C ++;
#include #include #include using namespace std; int main() ( int result; double significand; double x = 16.81; result = ilogb(x); significand = x / pow(FLT_RADIX, result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Παράδειγμα 2: συνάρτηση ilogb () με ακέραιο τύπο
#include #include #include using namespace std; int main() ( int result, x = 19; result = ilogb(x); double significand = x/pow(FLT_RADIX,result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
ilogb (19) = 4 19 = 1,1875 * 2 4