题解 | #求最大连续bit数#
/*
*time:2021.7.12:0920 - 0947;
*
- 段错误易错点: scanf("%d", *n); * 这里有的时候加 & , 有的时候不加& 注意;否则会报段错误,溢出什么的
- /
include <stdio.h>
int main()
{
unsigned char data;
int max = 0, cur;
while(EOF != scanf("%d", &data)){
max = 0;
// 对 data 进行 8 次 右移
// 本来做8次的
// 参考排名第一的这里写 data != 0
for(;data;){
cur = 0; // 当前连续1个数清零
// 判断是否有连续1
while(1 == data % 2 ) {
cur++;
data = data >> 1;
}
if(cur >= max) max = cur;
data = data >> 1;
}
printf("%d\n",max);
}
return 0;
}