原码一位乘法与补码一位乘法
逻辑移位与算术移位
- 逻辑移位:不管逻辑左移还是逻辑右移缺位补0
- 算术移位:1.无符号型值,和逻辑移位相同 2.有符号型值,根据符号位补缺位(和符号位相同)
在下面的原码一位乘和补码一位乘都遵循以下规则:
- 1.多余进位舍去
- 2.一直执行到乘数被用完(被移除完)
- 3.原码最后需要一位,补码不需要移位
- 4.原码补码一位乘取值都不去原乘数的数
原码一位乘法
定义:
符号位单独参加运算,数据位取绝对值,每次将一位乘数对应的部分积与原部分积的累加和进行相加,并右移一位,直到乘数的所有位被用完。
举例
X=0.1101,Y=-0.1011,求XY
1.设置部分积,乘数与被乘数的绝对值
A=00.0000,B=|X|=00.1101,C=.1011
2.若判断位(C的最后一位)为0,则部分积+0000;若为1,部分积+B
接着我们对符号的确定,是通过对被乘数与乘数的符号位进行异或判断的。
XY=(0⊕1).10001111=1.10001111
补码一位乘
补码一位乘在操作和判断位上和原码一位乘有区别(原码一位乘为一位,补码一位乘为两位)
例题:X=-01101,Y=-01011,求[XY]补=?
做这道我们首先需要了解,两位判断位对应的操作
判断位 | 操作 |
00 | 右移一位 |
01 | +B补,再右移一位 |
10 | -B补,再右移一位 |
11 | 右移一位 |
B补,-B补,C分别对应 [X]补,[-X]补,[Y]补
所以我们直接可以得到,XY=0010001111
本文作者:Hk_Mayfly
本文链接:https://www.cnblogs.com/Mayfly-nymph/p/11102136.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步