基本概念:
1.正数的原码、反码、补码都相同;
2.负数的原码:最高位为1,其余位为真值的绝对值;
3.负数的反码:在原码的基础上,符号位不变,其余位按位取反;
4.负数的补码:在原码的基础上,符号位不变,其余位取反,最后加1;也就是在反码的基础上加1。
负数的补码向源码转换步骤
- -12的补码:1111 0100
- 最高位不变,其余位取反:1000 1011
- 加一得到原码:1000 1100
题目:由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数
思路分析:
- 求最小的值,那么肯定是负数最小,最高位为1表示为负数
- 剩下的5个0和2个1要组成一个补码,只有1000 0011这种补码形式转换成原码后值最大 操作步骤
- 最高位不变,其余位去反 1111 1100
2.加1 1111 1101 计算后得到-(64+32+16+8+4+1)=-125
简单记
正数:原码=反码=补码
负数:反码=原码取反(符号位除外),补码=反码+1