【发布时间】:2014-04-26 10:08:59
【问题描述】:
int main(){
int a = 10, b = -2;
printf("\n %d \n",a^b);
return 0;
}
这个程序输出 -12。我不明白怎么做。请解释一下。
0111 1110 -> 2's complement of -2
0000 1010 -> 10
---------
0111 0100
这个 no 似乎大于 -12 并且是 +ve。但是我是如何将 o/p 设为 -12 的呢?
【问题讨论】:
-
提示:12 的 2 补码是什么?
-
-2 实际上是 11111...10
标签: c bit-manipulation bitwise-operators twos-complement bitwise-xor