MOOC《计算机组成原理》河南科技大学
https://www.icourse163.org/learn/HAUST-1001796013#/learn/announce
算术移位:
保持数的符号位不变,而数值大小发生变化。左移相当于乘2,右移相当于除2。
原码移位:
不论正数还是负数,符号位均不变,空位补“0”.
补码移位:
对于正数,符号位不变,左移右移空位补“0”
对于负数,符号位不变,左移补“0”,右移补“1”
例:
移位前:1 x1 x2 x3
左移: 1 x2 x3 0
右移: 1 1 x1 x2
带符号数的舍入处理:
1.恒舍(切断):舍去的值就不要了…
例:
01000110
右移1位:00100011 0
保留的部分不做改变
2.恒置1法:不论多余的数是什么,一律把保留在末尾的数置1
例:
01000100
右移1位:00100010 0
再将末位置1:00100011
3.0舍1入法:舍去的数为0,保留数不变,舍去的数为1,保留数末尾加1
01001100
右移:00100110 0 由于移出的是1,就不变
01001101
右移:00100110 1移出的为1,保留数末尾加1
00100111
定点数原码的一位乘法运算:
同号相乘为正,异号相乘为负。数值部分与十进制乘法类似。
首先取绝对值。
手工运算:
两个n为二进制数相乘,可产生最长长度为2n位的积。
但是手工运算的方法不能在机器上运行,存在三个问题:
1.在加法器中很难实现多个部分积同时相加。
2.在计算机中,加法器的位数一般与寄存器位数相同,不能像手工计算中,最后结果为寄存器位数的两倍。
3.在手工计算中,可以看到乘数的每一位,然鹅,计算机补能看见每一位是0还是1
计算机运算:
解决以上问题,计算机进行符号数原码一位乘法运算时,流程是这样的:
实现逻辑图:
例子:
最后判断符号位就完成了。
定点数补码的一位乘法运算:(Booth算法)
https://www.bilibili.com/video/BV17Q4y1K7jw?from=search&seid=16642361673499384339