终于明白 2’s complement 乘法是怎么做的了!

 之前(很久以前了)在看 Digital Design。才看到了 2‘s complement的时候就卡住了——怎么样也不明白那个乘法是怎么做的。这次终于明白了,不容易不容易……

 

按照四位表示的来看:-5 就是 把 5(0101) 反过来(1010)再加1(1011); 对应的 -3是 1101。这样,两边相乘是:

 

-5 * -3:

 

            |1010

*          |1101

————————

    1111|1010

    0000|0000

    1111|0100

    0010|1000 **

 

**之前一直在这里不明白,对着书看,书上说是要 negate……

    结果今天才顿悟,让我由于乘数最左面是1的缘故(表示符号) ,需要negate 被乘数

原理:乘数(1101)除了左面那个1,剩下的其实是 101。这样,相当于是 -5(1010) * 5(101)。前后差了8(5-(-3)=8)。 所以,需要再加上 8倍的(其实就是最左面那一位表示的weight) 被乘数。就是这个方法了!

 

很好……终于可以继续我的 Digital Design 之旅了……自学不容易啊……

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值