函式
<cmath> <ctgmath>

logb

     double logb  (double x);      float logbf (float x);long double logbl (long double x);
     double logb (double x);      float logb (float x);long double logb (long double x);     double logb (T x);           // additional overloads for integral types
計算浮點底數對數
返回 |x| 的對數,使用 FLT_RADIX 作為對數的底數。

在大多數平臺上,FLT_RADIX2,因此對於正值,該函式等價於 log2

標頭檔案 <tgmath.h> 提供了此函式的型別通用宏版本。
此標頭檔案(<cmath>)中為整數型別提供了額外的過載:這些過載在計算前會有效地將 x 轉換為 double(為任何整數型別T 定義)。

引數

x
要計算其對數的值。

返回值

FLT_RADIX 為底的 x 的對數。
如果 x 為零,可能會導致定義域錯誤極點錯誤(或沒有錯誤,具體取決於庫的實現)。

如果發生定義域錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 會被設定為 EDOM
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_INVALID

如果發生極點錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_DIVBYZERO

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* logb example */
#include <stdio.h>      /* printf */
#include <math.h>       /* logb */

int main ()
{
  double param, result;
  param = 1024.0;
  result = logb (param);
  printf ("logb (%f) = %f.\n", param, result );
  return 0;
}

輸出

logb (1024.000000) = 10.000000


另見