例如:
for 1000 it should be 512
for 10 it should be 8
for 208 it should be 128
这是我尝试过的方法。我觉得日志函数会消耗更多资源,所以有没有更快的方法?
#include<stdio.h>
int main() {
unsigned long long int num;
unsigned long long int mask;
scanf("%llu", &num);
mask = 0x80000000;
while(mask >>= 1) {
if (mask & num)
break;
}
printf("%llu\n", mask);
return 0;
}
谢谢 :)
ceil(log2(x))
:https://dev59.com/UnA75IYBdhLWcg3weZDu#15327567 -- 或许你可以适应它。 - paddy