#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
#define log2(n) log(n)/log(2) //可以把以其他数为底的写成宏或函数。
int main(){
//log()是cmath头文件自带的求以e为底的对数,log10()是自带的求以10为底的对数,exp(n)是求e的n次方的函数
cout<<log(1)<<endl;//以e为底,真数为1;
cout<<log(exp(3))<<endl;//以e为底,真数为exp(n)。
cout<<log10(100)<<endl;// 以10为底,真数为100;
//那么要求以2为底,或者其他数为底的呢,就要用到换底公式了
//以a为底,b为真数的对数可以写成:log(b)/log(a);
cout<<log(16)/log(2)<<endl;//这个例子是以2为底,真数为16,理想答案为4,运行验证一下;
cout<<log2(32)<<endl;
return 0;
}