c语言位运算

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:35:07
main(){
int a=9;
a=a^15;
printf("a=%d\n",a);
}
答案怎么会是6呢?
我用笔算是12
但是我用c free和win-tc编译都是6

9=0x1001
15=0x1111
两个按位异或等于 0x0110
显示成十进制整数就是6

^
按位异或,就是相同为0,不同为1

1001(9)
1111(15)
0110(6)

呵呵 那是因为9(10)=1001(2);15(10)=1111(2);
1001^1111=0110即6
因为0^1=1,1^1=0
给分吧 呵呵