#include <stdio.h>int main(int argc, char const *argv[])
{
int k = 2000;
int i=0;
while(k>1)
{
i++;
k = k >> 1;
printf("i = %d k = %d\n",i,k);
}
printf("%d\n",i);
return 0;
}
>> 右移运算符 等价于 除以2 除的时候会丢失精度。
<< 左移运算符 等价于 乘以2若考虑小数的话,2的10次1024 2000 / 1024 > 1 答案应为11 有个问题是 位移运算符只能位移整数,而不能移动小数。
但这是int类型,故答案为10.
标签:char,int,运算符,牛客,答案,printf,位移,刷题 From: https://blog.51cto.com/u_16254384/7439514