補碼一位乘法


這幾天疫情在家看網課,學校的補碼視頻講的太枯燥了。上B站結果就缺這一節😥。。。這就很悲傷呀。

對於補碼反碼和定點減法弄不明白的同學可以看看這篇:不列公式說定點運算,以及為什么需要反碼補碼https://www.cnblogs.com/AD-milk/p/12737812.html

補碼乘法說來也簡單,和原碼差不多,符號位也要參與運算。

首先來看例子

設[X]補​=X0​.X1​X2​X3​...Xn​[Y]補​=Y0.​Y1​Y2​Y3​...Yn

​則有:[X∗Y]補​=[X]補​∗(0.Y1​Y2​Y3​...Yn​)−Y0​∗[X]補

​展開合並后有:[X∗Y]補​=[X]補​∗∑(Yn+1−Yn)2-n

看黃色部分,也就是說我們到底是加上X補還是減又或者是0,就看倒數第二位的值於倒數第一位的差值。

也就是說:

在遵循原碼乘法的規則上,對部分積的加減做處理

1.Yn=Yn+1 ,那么部分積加上零(0*[X]補當然是零啦),再右移一位

2.Yn <Yn+1(01) ,部分積加上[x]補,再右移一位

3.Yn >Yn+1(10) ,部分積加上[-x]補,再右移一位

 

 

 這下諸位應該看懂了吧,怎么加,就是一直用倒數第二位減去倒數第一位的差值再去乘以X的補就OK了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM