下面的代碼用於數字的二進制表示。 此代碼工作正常.....但我不知道爲什麼 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