两个以2为底的log函数值,分别为原值和取整值。取n为2的29次,两值相等,但相减时有差。
取n为2的28次,30次却没问题。请问这是为什么。
#include<bits/stdc++.h>
bool isPowerOfTwo(int n) {
std::cout << log(n) / log(2) << '\n'; //①
std::cout << (int)(log(n) / log(2)) << '\n'; //②
std::cout << (log(n) / log(2)) - ((int)(log(n) / log(2))) << '\n'; //①-②
return 0;
}
int main() {
int n = 536870912;
isPowerOfTwo(n);
return 0;
}