计算机原理计算小结

tech2022-08-22  123

小结

补码

负数补码为原码除符号位每位取反末位+1负数的补码更好算的方法:符号位不变,X1的非,X2的非到XK的非,后面的10000等照写,得到的就是这个负数的补码知[y]求[-y]:[y]连同符号位每位取反,末位+1知负数的补码求原码:除符号位每位取反,末位+1正数的补码等于原码-1有补码无原码。[-0]=-128

反码

负数的反码:除符号位,各位取反,末位不加[-0]=-127

移码

比较大小通过移码补码符号位取反即为移码

浮点表示

N=S×rj;r为尾数基值,S为尾数,j为阶码尾数的绝对值<=1,阶码是整数浮点数尾数为0或阶码小于或等于它所表示的最小数(2-m其中m是阶码的位数),按机器零处理

移位

左移一位,真值变为原来的2倍对于正数,三种机器数移位后符号位均不变,左移时最高位丢1,结果出错;右移时最低位丢1,影响精度。负数原码左移时,高位丢1,结果出错,右移时,低位丢1,影响精度负数的补码左移时,高位丢0(原码的1),结果出错;右移时,低位丢1,影响精度算数移位符号位不参与移位运算,逻辑移位全部参与移位运算

加减法

用补码进行加减运算对于补码,连同符号位一起运算,和的符号通过计算过程自动产生,符号位产生的进位自动丢掉

溢出

数值最高位进位和符号位进位不同(异或结果为1)则溢出当两位符号位不同,表示溢出。不论是否发生溢出,高位符号位表示真正的符号。

原码一位乘

乘数最后一位为1,初态为0,部分积+X,右移一位乘数最后一位为0,部分积+0,右移一位最后符号位异或

补码一位乘

符号位参与运算,得到的也是补码形式被乘数x取双符号参与运算,部分积初值为0。乘数y取单符号位,乘数y末位增加一个附加位0.判断y的最后两位: 倒数第一位-倒数第二位=0(00/01)——>直接右移一位倒数第一位-倒数第二位>0(01)——>加x后右移倒数第一位-倒数第二位<0(10)——>加-x后右移 最后一位不移得到X*Y的补

除法

1.恢复余数法
符号位异或被除数绝对值+[-y*](y^*^指y的绝对值) 余数正,上商1,左移一位(被除数和商都左移),减除数即+[-y*];据它的值再进行上商.余数为负,上商0,加除数+[y*]恢复余数,余数左移一位,再+[-y*]得到新的余数。再判断新的上商是上0还是1;若这个新的余数>0,则上商1;余数<0,则上商0。
2.不恢复余数法
被除数绝对值+[-y*]余数>0,上商为1,余数左移一位并加上[-y*]除数余数<0,上商为0,余数左移一位并加上[y*]除数最后符号位异或

补码除法

初始商为0,第一步仅据同异号判断加上[-y]或[y]不上商余数[Ri]与[y]同号——>上商为1,新余数左移一位+[-y]余数[Ri]与[y]异号——>上商为0,新余数左移一位+[y]最后一步,左移一位,末位商恒置1

浮点加减运算

对阶 求阶差:用补码形式求阶差对阶:小阶向大阶看齐,阶码减小一位,尾数则左移 尾数求和(得到其补码形式的和)规格化 规格化判断:①原码第一位数为1;②补码符号位和第一位不同①左规:尾数左移一位,阶码-1,直到数符和第一位不同②右规:尾数溢出(尾数绝对值>1)时右规,即尾数为01.xxx或10.xxx时,尾数右移阶码+1 舍入 :对阶右规可能尾数末位丢失 恒置一法:计算结果最低有效位为10舍1入法

浮点数乘除

阶码相加减(乘积阶码[jx]+[jy];商为相减)尾数相乘/除 被除数若为0,则商0;除数为0,则商无穷大被除数尾数绝对值小于除数尾数绝对值,若被除数尾数绝对值大于除数尾数绝对值则被除数调整——>被除数尾数右移,阶码+1到小于为止 左规并舍入处理判断溢出:尾数不溢出,结果可能溢出
最新回复(0)