整数是用补码的方式存储在存储单元之中的,下面以5和-5为例子讲述。
5的存储:
1.首先在存储一个整数之前要给这个整数分配一块内存。这里我们给5这个整数分配2个字节(8*2)位的内存。
2.把5转换为2进制,就是101.
3.补码就是把101放到16位的内存中,前面补0.
补码:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
-5的存储:
1.先取-5的绝对值,是5.
2.把5转成2进制101,放到内存中。
原码:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
反码:
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
-5的补码
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
规律:对于有符号的整型数据,第一位是符号位。正数第一位为0,负数第一位为1.