补码

编码方法

X≥0时,[X]补码=X;X≤0,[X]补码=2^n-|X|。n是表示x的位数,如果用一个字节来表示x,n就是8。
0按两种方式计算的补码都是一样的,不过后者需要忽略溢出。
X<0时,补码计算也可以这样描述:其绝对值的最高位填1,其余位按位取反,然后再加1。

x补码
1270111 1111
20000 0010
10000 0001
00000 0000
-11111 1111
-21111 1110
-31111 1101
-1281000 0000

扩展

补码数要扩展时,正数是在符号的前面补0,负数是在符号的前面补1。也就是说,补码数扩展实际上是符号位的扩展。

范围

对n位整数来说:
无符号数,0≤N≤2^n-1
有符号数,-2^(n-1)≤N≤2^(n-1)-1

运算

法则1:两个数的补码之和等于该两数和的补码。即 [ X ]补码 + [ Y ]补码 = [ X + Y ]补码
X= 00000101
Y= 00000011
[X]补码= 00000101
[Y]补码= 00000011
[X]补码+ [Y]补码= 00001000
X+Y = 00000101 +00000011 = 00001000
[X+Y] 补码= [00001000]补码 = 00001000

法则2:一个数的相反数的补码等于该数补码各位按位取反(包括符号位),末位加1。即 [-X] 补码 = [X]补码按位取反后加1
X= 0000101(十进制 +5)
[ X] 补码= 00000101(根据补码定义)
[-X] 补码= 11111011(根据补码定义)
[-X] 补码= 11111010+1= 11111011

法则3:补码运算的结果也是补码。

结论

减法可用加法来实现。因为乘法是加法的简便运算,除法是减法的简便运算,因此,乘、除法也可以用加法实现。从而,计算机只要有了做加法的能力,就可以完成四则算术运算了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值