回复 8楼 九转星河
while (a)//获取数位
{
a<<=1;
count++;
}
问:当a=0时结束循环,a<<1是左移实现a=0;以二进制实现的,如a=5,二进制就是0000 0101 则a的数位就是3对吗?
b<<=count-1;//获取最高位
scanf("%u%u",&n,&m);//输入两个数
while (count--)
{
if (n==m)
break;
if (n>=b)
{
n<<=1;
n&=1;//这句语句起什么作用呢??
}
else
n<<=1;
}
if (n==m)
printf("Yes!\n");
else
printf("No!\n");
如果n,m的二进制是0010 1000和0001 0010
那只取最高位会不会有问题?? 还是我理解错了??