python的原码、反码、补码
01.python中的原码、反码、补码:
- 原码,是将数值二进制的结果。
- 举例:5的原码为0000 0101。
- 符号位,即最高位(如一个字节代表8位,8位中的第一位为符号位),正数符号位为0,负数为1。
- 其余数位,表示数值的大小。
- 举例:5的原码为0000 0101。
- 反码:
- 正数的反码与原码相同。
- 负数的反码符号位不变,其余按位取反。
- 补码:
- 正数的补码与原码相同。
- 负数的补码符号位不变,其余按位取反后+1。
- 补码的补码是原码。
02.python中的原码、反码、补码和负数的设计思路:
- 早期数字电路的cpu中的运算器实现了加法器,但没有实现减法器,减法需要转换为加法(加一个负数)。
- 负数在计算机中使用补码存储,例如-1的补码为1111111。
- 5-1的算法的示例:
- 第一步,将5-1换算成5+(-1)。
- 第二步,获取5的补码为0000 0101:
- 5的原码为0000 0101,正数的补码与原码相同。
- 第三步,获取-1的补码为1111 1111:
- -1的原码为1000 0001。
- -1的补码为1111 1111,符号位-1不变,其余位数取反后为1111 1110,最后+1。
- 第四步:二进制0000 0101与1111 1111相加,获得0000 0100。
- 0000 0100的十进制表示为4。
文档更新时间: 2020-03-16 02:02 作者:闻骏