#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int a[8]={0};
for(int i=0;i<8;i++)
{
if(n&(1<<i)) a[i] = 1;
}
int count=0;
int max=0;
for(int i=0;i<8;i++)
{
if(a[i]==1)
count++;
else
count=0;
max=max>count?max:count;
}
printf("%d\n",max);
}
}
对于代码段中,这个n&(1<<i),虽然知道是i左移,然与n进行and运算,但是对于具体操作流程还是不是特别理解,希望有大佬相助