首页 > 编程笔记

C语言log2():返回x的自然对数(以2为底的对数)

log2() 是 C语言的一个标准库函数,定义在<math.h>头文件中。

log2() 函数用于计算给定数字的以 2 为底的对数。该函数的原型如下:
double log2(double x);

参数

x:想要计算其以 2 为底的对数的值。它必须是正数,否则函数的行为是未定义的。

返回值

返回 x 的以 2 为底的对数。

如果传递给 log2() 的参数小于或等于零,该函数将返回一个特定实现的域错误,并设置全局变量 errno 来表示错误。

【实例】以下的 C语言代码计算了不同数字的以 2 为底的对数,并将结果打印出来。
#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
  double numbers[] = {1.0, 2.0, 4.0, 8.0, -4.0, 0};
  double result;

  for(int i = 0; i < 6; i++) {
    errno = 0; // 清除先前的错误
    result = log2(numbers[i]);

    if(errno == 0) {
      printf("log2(%.2f) = %.2f\n", numbers[i], result);
    } else {
      printf("Error in calculating log2(%.2f)\n", numbers[i]);
    }
  }

  return 0;
}
输出结果为:

log2(1.00) = 0.00
log2(2.00) = 1.00
log2(4.00) = 2.00
log2(8.00) = 3.00
Error in calculating log2(-4.00)
Error in calculating log2(0.00)

例子中展示了 log2() 如何处理正数和产生错误的情况,如果传递了一个非正数,会得到一个错误,可以通过检查 errno 变量来识别它。

推荐阅读