C ++ içindeki ilogb () işlevi, logaritma için temel olarak FLT_RADIX'i kullanarak | x | logaritmasının integral bölümünü döndürür.
Bu başlık dosyasında tanımlanır.
Matematiksel olarak,
x = anlamlı ve * FLT_RADIXexponent
anlamlılık, (1.0, 2.0) aralığında bir kayan nokta değeridir, x, ilogb () 'ye iletilen bağımsız değişkendir ve üs, ilogb () tarafından döndürülen tam sayı değeridir. FLT_RADIX değeri genellikle 2'dir.
İlogb () tarafından döndürülen değer, frexp () işlevi tarafından üretilen üs değerinden bir eksiktir, çünkü anlamlılık, frexp () 'de olduğu gibi (0.5, 1.0) yerine (1.0, 2.0) aralığındadır.
ilogb () prototipi (C ++ 11 standardından itibaren)
int ilogb (çift x); int ilogb (float x); int ilogb (uzun çift x); int ilogb (T x); // İntegral türü için
ilogb () Parametreler
İlogb () işlevi, ilogb'si hesaplanan tek bir bağımsız değişken alır.
ilogb () Dönüş değeri
İlogb () işlevi, logaritmanın tabanı olarak FLT_RADIX'i kullanarak | x | logaritmasının tamsayı kısmını döndürür.
- Bağımsız değişken 0 ise, FP_LOGB0 döndürür.
- Argüman NaN ise FP_LOGBNAN döndürür.
- Bağımsız değişken sonsuzsa, INT_MAX döndürür.
Örnek 1: ilogb () işlevi C ++ 'da nasıl çalışır?
#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; )
Programı çalıştırdığınızda, çıktı:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Örnek 2: integral tipli ilogb () işlevi
#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; )
Programı çalıştırdığınızda, çıktı:
ilogb (19) = 4 19 = 1.1875 * 2 4