二进制补码

二进制补码

二进制补码主要是为了解决负整数的加减法运算(减法转化为加法)。

补码表示法

原码表示法就是用二进制的最高位表示符号,0表示正数,1表示负数。以8位为例:1就是表示为0000 0001,-1表示为1000 0001.
而补码的规则是正整数保持不变,针对负整数,除符号位外,其他位全部取反,然后+1。
注:负整数中,原码转补码是符号位不变,按位取反+1.补码转原码也一样,符号位不变,按位取反+1.
比如-1,取反结果为1111 1110(符号位不变),再+1,补码为1111 1111.
特殊之处的说明:
1.原码表示中,0和-0可以分别表示为0000 0000和1000 0000,同一个数有两种表示,不方便计算机处理。而转换为补码之后却是一样的,0的补码为0000 0000不变,-0:1000 0000反码为1111 1111,+1得补码0000 0000.因此不用特殊处理。
2.除符号位外,7位二进制数能表示的范围是0~127,127的原码和补码都是0111 1111,正数符号位为0,所以8为二进制能表示的最大的正数就只能到127了。那负数的情况呢,这里有一个特殊的规定,就是在补码中用1000 0000表示-128。所以8位二进制数的范围为-128到127.

补码的作用

减法转换为加法:
例:5-3转为5+(-3)
0000 0101
1111 1101
1 0000 0010
舍去最高位得0000 0010 也就是2.

例:-5-2 转为-5 + (-2)
1111 1011
1111 1110
1 1111 1001
舍去最高位的1111 1001
取反1000 0110 +1得到1000 0111 也就是-7

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值