二进制数的乘法


二进制数的加法

先看一个1bit输入的半加器:

 

 其中,S是和,C_out是进位。从上图可以发现,S = A XOR B, C_out = A AND B,因此,一个半加器实际上是由异或门和与门电路实现的。

一个全加器,就是一个半加器增加一个进位输入,下面是一个1bit的全加器:

 

 那么,如果要实现多bit数的加法,只需要用多个全加器即可,这样的加法器叫做Ripple-Carry Adder:

 

 上图是一个32bit的Ripple-Carry Adder

 

二进制数的乘法

二进制数的乘法和十进制数的乘法,其基本原理是一样的

 

 

如上图所示,这两种数制的乘法都是把被乘数和乘数的每一位分别相乘,然后将得到的乘积根据所乘的乘数的位数进行移位,比如,在十进制数乘法中,如果将被乘数与乘数的个位相乘,那就把得到的乘积向左移动0位;如果被乘数与乘数的十位相乘,那就把得到的乘积向左移动1位...移位操作完成后,最后将这些移位后的乘积相加,就是最开始这两个被乘数与乘数的结果。

我们都知道,在二进制数中,只有数字0和1。在二进制数乘法中,如果与被乘数相乘的乘数的某一位为1,那结果就是被乘数本身,如果乘数的某一位为0,那此次的结果就是0。因此,二进制数乘法过程中的数次相乘,其实使用与门实现的。总结一句,二进制数乘法,是用与门与加法器实现的。

 

参考资料: 《数字设计和计算机体系结构》 David Money Harris, Sarah L. Harris


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM