二进制补码详解

    微处理器用二进制补码系统表示有符号整数,因为它可以将减法运算转换为对减数的补数的加法运算。

1.什么是二进制补码运算

    我们先引入补数的概念:

补数:一个数与它的补数之和是一个常数。例如一个一位的十进制数与它的补数之和总是9,2的补数是7,4的补数是5。在n位的二进制算术中,数P的补数Q=2^{n}-Q(即常数是2^{n})。 

    令n位二进制数N的二进制补码定义为2^{n}-N。如果N=5=00000101(8位二进制数),则N的补码为2^{8}-00000101=100000000-00000101=11111011(注意此处11111011用于表示5的补码,不要看成无符号整数)。

    下面看几个例子:

5:00000101,5的补码:11111001   

7:00000111,7的补码:11111001

    例1:将7与5的补数相加

00000111 + 11111011 = 1000000010

    结果为9位二进制数100000010。由于一共只有8位,我们忽略最左边一位,结果为00000010,也就是2。即7与5的补数相加结果为2,效果等同于7-5=2。

    例2:将7的补数与5相加

11111001+00000101=111111110

    结果为9位二进制数111111110,忽略最左边第九位后结果为11111110,“刚好”是二进制2的补码(2^{8}-00000

  • 20
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值