求助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是想要的数吗?
我写了一段: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是想要的数吗?
如果只有一位是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);
这样的话程序就好写了,可以用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);
c语言中怎样将两个8位的二进制数合成为一个16位的二进制数?
在所有六位二进制数中,至少有连续4位是1的数有多少个?
在所有六位二进制数中,至少有连续4位是1的数有多少个
c语言中如何提取二进制数中的某一位?
一个六位的二进制数,如果其最高位为1,最低位为0,在下列几个数值中,可能与二进制数值相等的是
C语言得到的数保留两位小数应该怎么写语句?
11,写出下列各数的原码、反码、补码表示,采用8位二进制数,其中最高位是符号位.(1)-0.546875 (2)
怎么把一个24位的二进制数处理成三个8位的二进制数
假定机器数为8位,(1位符号位,7位数值),写出下列各二进制数的原码和补码?
C 语言中40位的数怎么定义
在数位顺序表中,从右数,第二位是( )位,它的右边一位是( )位,左边一位是( )位,千位在第( )位
-1.0和+1.0用二进制原码怎么表示?机器数为8位,一位符号位,7位数值