作业帮 > 综合 > 作业

求助C语言:想得到某8位二进制数(只有一位是1)中1的位置,即在第几位,应该怎么写?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 12:49:24
求助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的位置,即在第几位,应该怎么写?
如果只有一位是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);