标签:
为什么
int i =5;
~i = -6
int j = -1;
~j = -2
?
原来计算机中带符号的整数以二进制的补码进行存储
参见:
http://www.cnblogs.com/dolphin0520/archive/2012/10/09/2711768.html
从原码/补码的角度来看,就清楚了
1 | ||||
原码 | 00000000 | 00000000 | 00000000 | 00000001 |
取反 | 11111111 | 11111111 | 11111111 | 11111110 |
-2 | ||||
原码 | 10000000 | 00000000 | 00000000 | 00000010 |
反码 | 11111111 | 11111111 | 11111111 | 11111101 |
补码 | 11111111 | 11111111 | 11111111 | 11111110 |
5 | ||||
原码 | 00000000 | 00000000 | 00000000 | 00000101 |
取反 | 11111111 | 11111111 | 11111111 | 11111010 |
-6 | ||||
原码 | 10000000 | 00000000 | 00000000 | 00000110 |
反码 | 11111111 | 11111111 | 11111111 | 11111001 |
补码 | 11111111 | 11111111 | 11111111 | 11111010 |
标签:
原文地址:http://www.cnblogs.com/AndyHoo/p/5428734.html