for(i=strlen(s)-1;i>=0;i--,t<<=1)是什么意思?

#include"stdio.h"
#include"string.h"
int main()
{int i,x=0,t=1;
char s[10]="101010";
for(i=strlen(s)-1;i>=0;i--,t<<=1)
if(s[i]!='0')
x+=t;
printf("x=%d\n",x);
return 0;
}

for(i=strlen(s)-1;i>=0;i--,t<<=1)
这个循环的目的是求出二进制字符串的值
其中i=strlen(s)-1;是循环的起点,即从字符串的最右侧开始处理。
i>=0;是循环的终点,即处理完最左侧字符串结束循环
i--,t<<=1 //i--是保障逐个字符处理 ,t<<=1是获得每个二进制串中每位的权值,依次2倍,即1,2,4,8,16...
温馨提示:答案为网友推荐,仅供参考
相似回答