C ++ ilogb () - Perpustakaan Standard C ++

Fungsi ilogb () dalam C ++ mengembalikan bahagian integral dari logaritma | x |, menggunakan FLT_RADIX sebagai asas untuk logaritma.

Ini ditentukan dalam fail tajuk.

Secara matematik,

 x = makna * FLT_RADIXkurang

makna adalah nilai titik terapung dalam julat (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 kurang dari eksponen yang dihasilkan oleh fungsi frexp (), kerana signifikansi berada dalam julat (1.0, 2.0) dan bukannya (0.5, 1.0) seperti pada frexp ().

prototaip ilogb () (Seperti standard C ++ 11)

int ilogb (dua kali ganda x); int ilogb (apungan x); int ilogb (panjang berganda x); int ilogb (T x); // Untuk jenis kamiran

ilogb () Parameter

Fungsi ilogb () mengambil satu argumen yang ilogbnya dikira.

ilogb () Nilai pulangan

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

  • Sekiranya argumen 0, ia mengembalikan FP_LOGB0.
  • Sekiranya argumennya adalah NaN, ia mengembalikan FP_LOGBNAN.
  • Sekiranya argumennya tidak terbatas, ia mengembalikan INT_MAX.

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

Semasa anda menjalankan program, outputnya adalah:

 ilogb (16.81) = 4 16.81 = 1.05062 * 2 4 

Contoh 2: fungsi ilogb () dengan jenis kamiran

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

Semasa anda menjalankan program, outputnya adalah:

 ilogb (19) = 4 19 = 1.1875 * 2 4

Artikel menarik...