文档详情

计组移位乘除浮点运算.doc

发布:2017-05-26约1.77千字共2页下载文档
文本预览下载声明
计算机的运算方法 移位运算: 逻辑左移:高位移丢,低位补0;逻辑右移:低位移丢,高位补0。 正数的算术移位与逻辑移位相同,移位相当于对真值补0。 负数 算术左移 算术右移(符号位保持不变) 原码 最高有效位MSB取反后移入符号位,数值部分逐位左移一位,最低位LSB补0。如果移位后符号位改变,表明发生溢出。 数值部分逐位右移一位,最低有效位LSB移出舍去,最高有效位MSB补0。 反码 最高有效位MSB移入符号位,数值部分逐位左移一位,最低位LSB补1。如果移位后符号位改变,表明发生溢出。 数值部分逐位右移一位,最低有效位LSB移出舍去,(符号位)1移入MSB。 补码 最高有效位MSB 移入符号位,数值部分逐位左移一位,最低位LSB补0。 定点运算: 补码加减法运算采用双符号位,列竖式。 [X+Y]补=[X]补+[Y]补 [X+Y]移=[X]移+[Y]补 [X-Y]补=[X]补+[-Y]补 [X-Y]移=[X]移+[-Y]补 2.乘法运算: 运算至乘数用完为止,在乘数栏中倒序看。 采用双符号位和三符号位是为了防止发生溢出。 X*Y= 注:n为乘数真值的位数,减|X|相当于[-|X|]补 原码一位乘 原码两位乘 补码一位乘 补码两位乘 部分积 (初始值为全0) 单符号位 三符号位(最高位为真正的符号位) 双符号位 三符号位 乘数Y 乘数数值部分的绝对值 (在数值部分绝对值前)奇数补一个0,偶数补两个0。 乘数的补码 (在补码前)奇数补一个符号位,偶数补两个符号位。 操作数X 绝对值 绝对值的补码 补码 补码 移位 逻辑右移 补码右移 补码右移 补码右移 移位次数 n n为奇数:n/2+1次, 最后一步移一位 n为偶数:n/2次, 最后一步不移位 n次 最后一步不移位 n为奇数:n/2+1次,最后一步移一位 n为偶数:n/2 次,最后一步不移位 最多加法次数 n n/2+1 n+1 n/2+1 结果 未加符号位时,结果一定是正数 可正可负 3.除法运算: 定点小数除法必须满足以下条件:0|被除数||除数|,避免商大于1. 定点整数,商也应是整数。要求:0|除数|=|被除数|,避免商小于1。 计算机在做除法之前,必须先检查除数和被除数是否为零。若除数为零,则转出错处理。若被除数为零,则直接得出商为零。 原码加减交替法: 采用一位符号位,符号位单独运算;逻辑左移n次;不舍弃余数。 操作数是绝对值的补码,最后一次余数若为负值,还应加上除数的绝对值以得到正确的余数。 运算中共逻辑左移n次,相当于乘2n,最后的余数应为Rn*2-n。 1.|x|+[-|y|]补(被除数的绝对值减除数的绝对值) 2. R0 商上1 2R-[-|y|]补 R0 商上0 2R+|y| 补码加减交替法: 采用双符号位;补码左移n次(最高符号位保持不变);舍弃余数 操作数是补码,如果对商的精度没有特殊要求,一般采用“末尾恒置一”法,舍弃余数,最大误差为2-n。 1.[x]补与[y]补同或决定做加法还是做减法运算。 2. [R]补与[y]补同号 商上1 2[R]补-[y]补 [R]补与[y]补异号 商上0 2[R]补+[y]补 上商次数 移位次数(用以判断运算是否结束) 加法次数 原码 n+1 n n+1 补码 n+1 n n+1(最后一次加法后恒置1) 三.浮点运算 浮点除法不用舍入处理这一步,舍入处理只可能发生在尾数调整部分。
显示全部
相似文档