请那位大哥帮忙解释一下下面代码实现的步骤
本人是新手,看不是很明白,非常感谢哈
代码目的是将输入的十进制数转换为二进制输出
代码如下:
#define N 32 // 32表示int是32位的,当然也可以改成16位或其他。
void CANNGE(int X)
{
int i;
for(i = 1;i <= N;i++){
if((1 << N – i) & X)printf(“1″);
else printf(“0″);
}
}
int main(void)
{
int x;
scanf(“%d”,&x);
CANNGE(x);
return 0;
}
>> 本文固定链接: http://www.vcgood.com/archives/2062
这是谁编的代码,太乱了,应该简洁一些才对
这个是位运算!
按位与运算只有当两个二进位均为1时,结果位才为1 ,否则为0.
而int X本来就是二进制存在于系统中的,所以可以用&运算检测哪几位是1.