浅析补码

计算机为了表达正负整数,把最高位单独拿出来,0代表正、1代表负,于是乎为了简化符号位带来的运算复杂,出现了补码。

 

理解补码必须首先理解模:

1)前提:表达整数的最小绝对值为0;

2)钟表的表盘分成12等分,把12点看做0点,时针所在的位置总共有12种情况(0~11),12就是模。

3)8位数可以表达二进制为0000 0000~1111 1111(即十进制的0~255)的数值,也就是二进制1 0000 0000(即十进制的256)种可能性,256就是8位数的模;

 

负数的补码=-负数的绝对值

1)单从钟表时针的位置而言,从12点位置往前拨6格是6点位置(0 + 6 = 6),往后拨6格还是6点位置(0 - 6 = 6),是因为0 - 6 = 0 + (-6) = 0 + (12 - |-6|) = 0 + (12 - 6) = 0 + 6 = 6;

2)对8位整型而言,以二进制表示:

负数=1 0000 0000 - 负数的绝对值 = 1 + 1111 1111 - 负数的绝对值 = 1 + 1111 1111 - 负数的绝对值= 1 + 负数的绝对值按位取反

其实课本上说的把负数的绝对值取反再加上1就是这个意思。

 

这样可以得到几个负数的补码:

-128 = 256 - |-128| = 256 - 128 = 128,即2进制的1000 0000;

-1 = 256 - |-1| = 255,即2进制的1111 1111。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值