C ++ ilogb () - C ++ Standard Library

Fungsi ilogb () di C ++ mengembalikan bagian integral dari logaritma | x |, menggunakan FLT_RADIX sebagai basis untuk logaritma.

Ini didefinisikan dalam file header.

Secara matematis,

 x = signifikan * FLT_RADIXexponent

signifikan adalah nilai floating point dalam range (1.0, 2.0), x adalah argumen yang diteruskan ke ilogb () dan eksponen adalah nilai integer yang dikembalikan oleh ilogb (). Nilai FLT_RADIX umumnya 2.

Nilai yang dikembalikan oleh ilogb () adalah satu kurang dari eksponen yang dihasilkan oleh fungsi frexp (), karena signifikansi berada dalam rentang (1.0, 2.0) dan bukan (0.5, 1.0) seperti di frexp ().

ilogb () prototipe (Pada standar C ++ 11)

int ilogb (double x); int ilogb (float x); int ilogb (panjang ganda x); int ilogb (T x); // Untuk tipe integral

ilogb () Parameter

Fungsi ilogb () mengambil satu argumen yang ilogb-nya dihitung.

ilogb () Nilai kembali

Fungsi ilogb () mengembalikan bagian integral dari logaritma | x |, menggunakan FLT_RADIX sebagai basis untuk logaritma.

  • Jika argumennya 0, ia mengembalikan FP_LOGB0.
  • Jika argumennya adalah NaN, maka FP_LOGBNAN akan dikembalikan.
  • Jika argumennya tidak terbatas, ia mengembalikan INT_MAX.

Contoh 1: Bagaimana fungsi ilogb () bekerja di 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; ) 

Saat Anda menjalankan program, hasilnya adalah:

 ilogb (16,81) = 4 16,81 = 1,05062 * 2 4 

Contoh 2: fungsi ilogb () dengan tipe integral

 #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; ) 

Saat Anda menjalankan program, hasilnya adalah:

 ilogb (19) = 4 19 = 1,1875 * 2 4

Artikel yang menarik...