下面的代码用于数字的二进制表示。 此代码工作正常.....但我不知道为什么 if((x&(0x80000000))>0)
应该<0
代替>0
因为如果x的第一位是1,产生的数量将是-2147483748,小于0,但仍此代码有效。数字的二进制表示
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
for(int i=0;i<32;i++)
{
if((x&(0x80000000))>0)
printf("1");
else
printf("0");
x=x<<1;
}
printf("\n");
getchar();
getchar();
return 0;
}
为什么不用'!='而不是'>'? – likeitlikeit 2013-05-13 20:33:50
!=工作..但我想知道这个代码有什么问题? – user2379271 2013-05-13 20:35:34