标签:head 计算机 取反 code 二进制 整数 计算 hive tab
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 |
标签:head 计算机 取反 code 二进制 整数 计算 hive tab
原文地址:https://www.cnblogs.com/tigerlion/p/10658284.html