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