欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

计算机乘除法运算中部分积和余数的符号位选择与位移的关系

发布时间:2024/10/14 编程问答 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 计算机乘除法运算中部分积和余数的符号位选择与位移的关系 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.原码一位乘

原码一位乘部分积采取一位符号位,逻辑左移


我们其实可以采取双符号位,最高位代表正在符号位,但是我们可以看到,如果采取双符号位的话,由于是绝对值参与的运算,最高符号位一定是0,所以就没有必要,如果我们硬要采取双符号位也未尝不可,只是我们选择算术右移。最高位代表真正符号位,次高位参与移位。我们还要了解到

有多位符号位时,最高位代表正真符号位,不参与算术移位,其余符号位参与算术移位

2.原码两位乘

原码两位乘部分积采用三位符号位,算术移位

博主其实不是很理解为啥非要采用三位符号,两位符号位加不就OK了吗,今天终于给老子看懂了,真是不得不佩服膜拜前辈们的聪明才智(估计以后会让我五体投地)

按照原码一位乘的想法,其实两位符号位正好可以满足部分积相加,再配合逻辑移位。但是这中间有错误,当我们加上负x的补码,这时候就会出现小于0的情况,但是逻辑移位后的值是一个大于0的结果,很明显和结果不符合,所以才有三位符号位,加算术右移就很好的解决了这个问题

3.补码一位乘与补码两位乘

补码一位乘部分积符号位采用双符号位,算术右移
补码两位乘采用三位符号位,算术右移

一位和两位乘原理差不多,这里就只介绍补码一位乘

其实理由很简单如果部分积采用单符号位,那么采用逻辑右移会和出现和原码两位乘同样的结果,所以采用双符号位算术右移

4.原码除法

原码除法余数与商符号位取一位,逻辑左移

此处由于是左移,我们知道补码的左移和原码一样,所以即使出现余数为负数的情况也不会出现错误。当然我们也可以取双符号位,算术左移

5.补码除法

补码除法符号位自然形成,余数与商符号位取一位,逻辑左移

总结

以上是生活随笔为你收集整理的计算机乘除法运算中部分积和余数的符号位选择与位移的关系的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。