C ++ ilogb () - Βασική βιβλιοθήκη C ++

Η συνάρτηση 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

ενδιαφέροντα άρθρα...