计算机组成原理--浮点数表示以及原码一位乘法方法

思维导图概览
x * y = z
讨论已知x和y的情况下,怎么通过原码一位乘法方法得出z
运算规则

  1. z的符号位通过x和y的符号位进行异或运算得到~(负负得正,正正得正,正负得负)
  2. 所以就不用讨论x和y的符号位啦,z除了符号之外的其他部分由x的绝对值乘以y的绝对值得到
    1、2两点总结一下就是说:被乘数和乘数均取绝对值参加运算,符号位单独考虑

我们手工进行乘法运算的时候,是通过y从右往左每一位都和x相乘,(乘完一次就往前缩进一个数位)然后把结果相加得到的,不过机器为了节约空间,毕竟按照手算的方法那样两个n位相乘最后可能会需要2n的长度空间才能得到结果,计算机是采用把每次用y的一位和x相乘的结果(叫做部分积)累加后右移一位,再处理y当前位的下一位的~

  1. 我们把被乘数x先取双符号,而且让部分积初始值为0,并且长度和被乘数x相同

计算机只有0和1,所以处理乘法的时候运算法则远没有99乘法表那么复杂,运算规则为:

  1. 从y的最后一位开始(一直到第一位)分别与x相乘:

当y的当前位为1,则部分积加上x的绝对值
当y的当前位为0,则部分积加上0
5. 右移一位,在前面加0。不断处理y的每一位,知道y的所有位都处理过为止

比如x = 0.1101 ,y = 0.1011

1、先把部分积设为初始值0(长度扩展到和x相同),即

00.0000
y的最后一位是1,所以要加上x的绝对值:
00.0000 + 00.1101 = 00.1101
右移1位,前面补0,变成了00.01101

2、下面处理y的倒数第二位,还是1,继续加x的绝对值:

00.01101 + 00.1101 = 01.00111
别忘记右移1位,前面补0,这样就变成了00.100111

3、y倒数第3位是0,只要加0就好了,所以还是:00.100111

既然加了0,别忘记右移一位,所以变成了00.0100111

4、y还剩最后一个位(也就是第一位)没处理啦,第一位是1哦,那就加上x的绝对值:

00.0100111 + 00.1101 = 01.0001111
别忘记右移一位!所以最后结果是 00.10001111
这就是最后结果
例题6.17
例题
例题

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原码一位乘法器是一种基于原码表示方法乘法器。原码表示方法是一种浮点数表示方式,其中最高表示符号,其他表示数值部分。原码一位乘法器的设计是通过将两个原码数的各进行相乘,并将结果相加,得到乘积的原码表示原码一位乘法器的工作原理如下:首先,将两个原码数的最高(即符号)进行异或运算,得到乘积的符号。接下来,将两个原码数的其余进行与运算,得到乘积的数值部分。然后,将乘积的符号和数值部分进行拼接,得到最终的乘积的原码表示。 在Quartus软件中,可以使用逻辑门电路来实现原码一位乘法器。通过使用逻辑门电路中的异或门和与门,可以实现符号和数值部分的计算和拼接操作。然后,将多个一位乘法器进行级联,即可实现多乘法运算。 原码一位乘法器的设计需要考虑到数字逻辑设计的原则,如最小逻辑延迟和尽可能少的面积占用等。为了提高乘法器的性能,还可以采用更高级别的设计技术,如Booth编码和Wallace树等。这些技术可以减少逻辑门级数和减小面积开销,从而提高乘法器的工作效率。 总之,原码一位乘法器是一种基于原码表示方法乘法器,通过使用逻辑门电路和级联设计,可以实现多原码数的乘法运算。在数字逻辑设计中,可以使用Quartus软件来实现原码一位乘法器的设计。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值