求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?我写了一段:unsigned char a,b,; 此数为a,b是中间变量.if(a!=0) \x05\x05\x05\x05{ b=a;while(b!=0)\x05\x05\x05\x05 {\x05\x05\x05

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 18:49:02
求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?我写了一段:unsigned char a,b,; 此数为a,b是中间变量.if(a!=0) \x05\x05\x05\x05{ b=a;while(b!=0)\x05\x05\x05\x05 {\x05\x05\x05

求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?我写了一段:unsigned char a,b,; 此数为a,b是中间变量.if(a!=0) \x05\x05\x05\x05{ b=a;while(b!=0)\x05\x05\x05\x05 {\x05\x05\x05
求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?
我写了一段:unsigned char a,b,; 此数为a,b是中间变量.
if(a!=0)
\x05\x05\x05\x05{ b=a;
while(b!=0)
\x05\x05\x05\x05 {
\x05\x05\x05\x05 b=b/2;
\x05\x05\x05 b++;
\x05\x05\x05\x05 }
}
b是想要的数吗?

求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?我写了一段:unsigned char a,b,; 此数为a,b是中间变量.if(a!=0) \x05\x05\x05\x05{ b=a;while(b!=0)\x05\x05\x05\x05 {\x05\x05\x05
如果只有一位是1的话,很好做啊,这个变量a只可能是1或2或4或8或16或32或64或128,
这样的话程序就好写了,可以用for语句,我下边写个最简单的:
if (a==1)
i=0;
else if (a==2)
i=1;
else if (a==4)
i=2;
else if (a==8)
i=3;
.
printf("第%d位是1 \n",i);