當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ ilogb()用法及代碼示例


C++ STL中的ilogb(x)函數通過使用FLT_RADIX作為對數的底數,返回| x |對數的整數部分。通常,FLT_RADIX的值為2,因此ilogb()等效於ilog2()(僅適用於正值)。

用法

ilogb(x)

參數:該函數接受單個強製參數x,其ilogb()將被計算。數據類型可以是double,float,long double或int。


返回值:該函數使用FLT_RADIX作為對數的底數,返回| x |的對數的整數部分。該函數返回三個異常值:

  • 如果參數為NaN,則返回FP_LOGBNAN。
  • 如果參數是無限的,則返回INT_MAX
  • 如果參數為0,則返回FP_LOGB0。

以下示例程序旨在說明上述函數:

程序1

// C++ program to illustrate the ilogb() 
// function when input is an integer 
#include <cfloat> 
#include <cmath> 
#include <iostream> 
  
using namespace std; 
  
int main() 
{ 
    int result, x = 25; 
  
    // Function to calculate ilogb(25) 
    result = ilogb(x); 
    cout << "ilogb (" << x << ") = " << result << endl; 
  
    // Function to calculate ilogb(50) 
    x = 50; 
    result = ilogb(x); 
    cout << "ilogb (" << x << ") = " << result << endl; 
  
    return 0; 
}
輸出:
ilogb (25) = 4
ilogb (50) = 5

程序2
非積分型程序

// C++ program to illustrate the ilogb() 
// function when input is a double value 
#include <cfloat> 
#include <cmath> 
#include <iostream> 
  
using namespace std; 
  
int main() 
{ 
    int result, x = 11.11; 
  
    result = ilogb(x); 
    cout << "ilogb (" << x << ") = " << result << endl; 
  
    x = 41.11; 
    result = ilogb(x); 
    cout << "ilogb (" << x << ") = " << result << endl; 
  
    return 0; 
}
輸出:
ilogb (11) = 3
ilogb (41) = 5

程序3

// C++ program to illustrate the ilogb() 
// function when input is 0 
#include <cfloat> 
#include <cmath> 
#include <iostream> 
#include <iostream> 
  
using namespace std; 
  
int main() 
{ 
    int result, x = 0; 
  
    result = ilogb(x); 
    cout << "ilogb (" << x << ") = " << result << endl; 
  
    return 0; 
}
輸出:
ilogb (0) = -2147483648


相關用法


注:本文由純淨天空篩選整理自IshwarGupta大神的英文原創作品 ilogb() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。