带符号最高位为符号位:
0:正数
1:负数
先灌输几个概念,学过通信原理的应该都知道
原码:正数是二进制本身,负数是它绝对值,加上最高位的符号位
5:0000 0000 0000 0000 0000 0000 0000 0101
-5:1000 0000 0000 0000 0000 0000 0000 0101
反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反
5:0000 0000 0000 0000 0000 0000 0000 0101
-5:1111 1111 1111 1111 1111 1111 1111 1010
补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后加1
5:0000 0000 0000 0000 0000 0000 0000 0101
-5:1111 1111 1111 1111 1111 1111 1111 1011
所以-5在32位系统内存中保存为:0xfffffffb