09-计算机的运算方法04.ppt
系系统统总总线线存储器存储器 运算器运算器 控制器控制器 接口与通信接口与通信 输入输入/输出设备输出设备林楠林楠办公室:办公室:211办公电话:办公电话:0371-63888959电子邮件:电子邮件: 计算机组成原理计算机组成原理 第六章第六章 计算机的运算方法计算机的运算方法第六章第六章 计算机的运算方法计算机的运算方法3、定点乘法运算、定点乘法运算3.1、原码一位乘法、原码一位乘法3.2、补码一位乘法(重点:、补码一位乘法(重点:布斯乘法布斯乘法)3.3、补码两位乘法、补码两位乘法3.4、阵列乘法器、阵列乘法器方法:方法:充当计算机!充当计算机!严格按照运算法则去做,严格按照运算法则去做,不加思考,态度不加思考,态度认真认真,保证结果正确。保证结果正确。4、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法原码一位除法基本上是从手算演变过来,原码一位除法基本上是从手算演变过来,符号位单独处理符号位单独处理。两个原码表示的数相除运算规则:两个原码表示的数相除运算规则:商的符号位商的符号位:两数的:两数的符号符号相相异或异或 商的数值部分:商的数值部分:两数的两数的绝对值相除绝对值相除。运算方法与普通的十进制小数除法相类似,运算方法与普通的十进制小数除法相类似,设设 n 位被乘数位被乘数X 和和 乘数乘数Y 用用定点小数定点小数表示(定点整数同样)表示(定点整数同样)被除数:被除数:X原原=Xf.Xn-1 X1 X0除数:除数:Y原原=Yf.Yn-1 Y1 Y0商商 Q 原原=(Xf Yf)+(0.Xn-1 X1 X0)/(0.Yn-1 Y1 Y0)于是原码与原码相除就变成如何进行于是原码与原码相除就变成如何进行两个正数相除两个正数相除的问题了。的问题了。两种除法:两种除法:恢复余数法恢复余数法 不恢复余数法(加减交替法)不恢复余数法(加减交替法)4.1、原码一位除法、原码一位除法两个数相除,上商时,两个数相除,上商时,人会心算,一看就知道够不够减。人会心算,一看就知道够不够减。够减商够减商1,不够减商,不够减商0。但机器不会,必须先作减法。但机器不会,必须先作减法。若余数为正,才知道够减;若余数为正,才知道够减;若余数为负,才知道不够减若余数为负,才知道不够减。不够减时,必须恢复原来的余数。不够减时,必须恢复原来的余数。顾名思义顾名思义恢复余数法恢复余数法。4.1、原码一位除法、原码一位除法1)恢复余数法)恢复余数法 08 7 -8 -1 +8 7 17 8 -7 +1 被除数被除数 X=0.1011 除数除数Y=0.1101 求求 X/Y。商精确到小数点后四位。商精确到小数点后四位。手算方法计算步骤如下:手算方法计算步骤如下:4.1、原码一位除法、原码一位除法 0.1101 0.1101 0.1011 -0.1101 1.1110 +0.1101 0.1011 0.10110 -0.01101 0.01001 0.010010 -0.001101 0.000101 0.0001010 -0.0001101 1.1111101 +0.0001101 0.0001010 0.00010100 -0.00001101 0.00000111 -Y 得负数,不够减,商得负数,不够减,商0 X低位补低位补0-2-1Y 得正数,够减,商得正数,够减,商1 X低位补低位补0 -2-2Y 得正数,够减,商得正数,够减,商1 X低位补低位补0 -2-3Y 得负数,不够减,商得负数,不够减,商0 +2-3Y,恢复余数,恢复余数 -2-4Y 得正数,够减,商得正数,够减,商1+Y,恢复余数,恢复余数X低位补低位补04.1、原码一位除法、原码一位除法1)恢复余数法)恢复余数法1、符号单独处理,、符号单独处理,Q f=(Xf Yf),取绝对值相除;,取绝对值相除;2、作减法,若不溢出,运算开始;、作减法,若不溢出,运算开始;3、-Y,若余数若余数 R 为正(够减),商为正(够减),商 1,左移一位,左移一位;-Y,若余数若余数 R 为负(不够减),商为负(不够减),商 0,恢复余数,左移一位;,恢复余数,左移一位;4、重复、重复 n 步;步;5、若最后一步余数为负(不够减),应恢复余数(、若最后一步余数为负(不够减),应恢复余数(+Y补补)。)。右移右移 除数除数Y,可以通过,可以通过 左移左移 余数余数 来替代,来替代,左移出界的左移出界的 余数余数 的高位都是无用的零,的高位都是无用的零,对运算不会产生任何影响。对运算不会产生任何影响。如果,如果,余数余数一共被一共被左移左移了了n次,最后需要校正。次,最后需要校正。最终的余数最终的余数再右移再右移n次。次。寄存器寄存器A存放存放 被除数被除数 X=0.1011 ,后来可存放,后来可存放余数余数,累次累次参加运算。参加运算。寄存器寄存器B存放存放 除数除数 Y=0.1101 寄存器寄存器C存放存放 商商 Q=X/Y 另外设置计数器另外设置计数器CR控制循环次数。控制循环次数。X原原-Y原原 运算可以用运算可以用 X补补+-Y补补取代;取代;Y补补=0.1101 -Y补补=1.00114.1、原码一位除法、原码一位除法分析:分析:参加运算的数参加运算的数X,Y 都是正数,正数的原码与补码表示相同。都是正数,正数的原码与补码表示相同。被除数被除数X(余数)(余数)商商 操作操作 0.1011 0 0 0 0 0+1.0011 -Y (+-Y补补)1.1110 0 0 0 0 0 负数:负数:不够减,不够减,商商0+0.1101 +Y 恢复余数,恢复余数,(+Y补补)0.1011 0 0 0 0 0 余数和商同时余数和商同时左移一位左移一位 1.0110 0 0 0 0 0 +1.0011 -Y (+-Y补补)0.1001 0 0 0 0 1 正数:正数:够减,够减,商商1 1.0010 0 0 0 1 0 余数和商同时余数和商同时左移一位左移一位+1.0011 -Y (+-Y补补)0.0101 0 0 0 1 1 正数:正数:够减,够减,商商1 0.1010 0 0 1 1 0 余数和商同时余数和商同时左移一位左移一位+1.0011 -Y (+-Y补补)1.1101 0 0 1 1 0 负数:负数:不够减,不够减,商商0+0.1101 +Y 恢复余数,恢复余数,(+Y补补)0.1010 0 0 1 1 0 余数和商同时余数和商同时左移一位左移一位 1.0100 0 1 1 0 0+1.0011 -Y (+-Y补补)0.0111 0 1 1 0 1 正数:正数:够减,够减,商商1被除数被除数X=0.1011 除数除数Y=0.1101 商商0.1101 余余0.0111*2-4余数再右移四位得正确结果余数再右移四位得正确结果:0.0000 0111。2)不恢复余数法(加减交替法)不恢复余数法(加减交替法)加减交替法是对恢复余数除法的一种修正。加减交替法是对恢复余数除法的一种修正。当当余数为负余数为负时,时,不恢复不恢复,继续求继续求下一位下一位商商,但用加上除数但用加上除数(+Y)的办法来的办法来取代取代(-Y)操作,其他操作不变。操作,其他操作不变。加减交替法的规则如下:加减交替法的规则如下:余数为正,商余数为正,商1,左移一位,减除数(,左移一位,减除数(-Y);余数为负,商余数为负,商0,左移一位,加除数(,左移一位,加除数(+Y)。此方法不用恢复余数,所以又叫此方法不用恢复余数,所以又叫不恢复余数法不恢复余数法。但若最后一次上商为但若最后一次上商为0,则仍需恢复余数,则仍需恢复余数(+Y补补)。4.1、原码一位除法、原码一位除法 被除数(余数)被除数(余数)商商 操作操作 0.1011 0 0 0 0 0+1.0011 -Y (+-Y补补)1.1110 0 0 0 0 0 负数:负数:商商0 1.1100 0 0 0 0 0 余数和商同时左移一位余数和商同时左移一位+0.1101 +Y 0.1001 0 0 0 0 1 正数:正数:商商1 1.0010 0 0 0 1 0 余数和商同时左移一位余数和商同时左移一位+1.0011 -Y (+-Y补补)0.0101 0 0 0 1 1 正数:正数:商商1 0.1010 0 0 1 1 0 余数和商同时左移一位余数和商同时左移一位+1.0011 -Y (+-Y补补)1.1101 0 0 1 1 0 负数:负数:商商0 1.1010 0 1 1 0 0 余数和商同时左移一位余数和商同时左移一位+0.1101 +Y 0.0111 0 1 1 0 1 正数:正数:商商14.1、原码一位除法、原码一位除法被除数被除数X=0.1011 除数除数Y=0.1101 商商0.1101 余余0.0111*2-4余数再右移四位得正确结果余数再右移四位得正确结果:0.0000 0111。CPA2.3、补码定点加法器、补码定点加法器+X-Y设开关电路设开关电路负数不送回负数不送回思考问题:思考问题:恢复余数法在电路上实现其实更简单!恢复余数法在电路上实现其实更简单!4、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法4.2、补码一位除法、补码一位除法补码加减交替法补码加减交替法,法则如下:法则如下:(Ri补补为余数,数值部分共为余数,数值部分共n位位)X补补Y补补符号符号商符商符求余数求余数R补补R补补,Y补补符号符号上商上商求新余数求新余数(共共n步步)同号同号0X补补-Y补补同号同号(够够减减)异号异号(不不够够减减)102Ri补补-Y补补2Ri补补+Y补补异号异号1X补补+Y补补同号同号异号异号102Ri补补-Y补补2Ri补补+Y补补 1)比较比较 2)上商上商 3)求新余数求新余数R补补,Y补补符号符号上商上商求新余数求新余数(共共n步步)同号同号12Ri补补 +-Y补补异号异号02Ri补补 +Y补补 1)比较比较 2)上商上商 3)求新余数求新余数由上式化简由上式化简方法:列表格方法:列表格4)商的符号)商的符号 两种常见的做法:两种常见的做法:方法一:方法一:第一步比较第一步比较XY同号做同号做X补补Y补补;异号做;异号做X补补+Y补补;方法二:方法二:一开始就将被除数一开始就将被除数X当作初始余数当作初始余数R0,R0与与Y同号商同号商1,异号商,异号商0,得的假商,得的假商最后求反最后求反进行校正。进行校正。5)商的校正)商的校正 对于对于方法一方法一,商符正确,商末位恒置商符正确,商末位恒置1。对于对于方法二方法二,商符取反,商末位恒置商符取反,商末位恒置1。4.2、补码一位除法、补码一位除法 思考:思考:由于方法一开始比较被除数与除数,后来比较余数与除数,由于方法一开始比较被除数与除数,后来比较余数与除数,控制部署不一样。所以采用方法二,硬件电路比较好实现,控制部署不一样。所以采用方法二,硬件电路比较好实现,全部是比较余数与除数,便于计算机控制。全部是比较余数与除数,便于计算机控制。4.2、补码一位除法、补码一位除法被除数被除数X(余数(余数R)商商Q 操作操作 0.1011 0 0 0 0 0+1.0011 X Y 同号:同号:+-Y补补 1.1110 0 0 0 0 0 R Y 异号:异号:商商0 1.1100 0 0 0 0 0 余数余数R和商同时和商同时左移一位左移一位+0.1101 +Y补补 0.1001 0 0 0 0 1 R Y 同号:同号:商商1 1.0010 0 0 0 1 0 余数余数R和商同时和商同时左移一位左移一位+1.0011 +-Y补补 0.0101 0 0 0 1 1 R Y 同号:同号:商商1 0.1010 0 0 1 1 0 余数余数R和商同时和商同时左移一位左移一位+1.0011 +-Y补补 1.1101 0 0 1 1 0 R Y 异号:异号:商商0 1.1010 0 1 1 0 0 余数余数R和商同时和商同时左移一位左移一位+0.1101 +Y补补 0.0111 0 1 1 0 1 商的末位恒置商的末位恒置1使用方法一:使用方法一:X补补=0.1011 Y补补=0.1101 -Y补补=1.0011被除数被除数X=0.1011 除数除数Y=0.1101 商商0.1101 余余0.0111*2-4余数再右移四位得正确结果,前面补符号位。余数再右移四位得正确结果,前面补符号位。4.2、补码一位除法、补码一位除法被除数被除数X(余数(余数R)商商Q 操作操作 0.1011 0 0 0 0 1 R Y 同号:同号:商商1 1.0110 0 0 0 1 0 余数余数R和商同时和商同时左移一位左移一位+1.0011 +-Y补补 0.1001 0 0 0 1 1 R Y 同号:同号:商商1 1.0010 0 0 1 1 0 余数余数R和商同时和商同时左移一位左移一位+1.0011 +-Y补补 0.0101 0 0 1 1 1 R Y 同号:同号:商商1 0.1010 0 1 1 1 0 余数余数R和商同时和商同时左移一位左移一位+1.0011 +-Y补补 1.1101 0 1 1 1 0 R Y 异号:异号:商商0 1.1010 1 1 1 0 0 余数余数R和商同时和商同时左移一位左移一位+0.1101 +Y补补 0.0111 1 1 1 0 0 0 1 1 0 1 校正:商符取反,商末位置校正:商符取反,商末位置1使用方法二:使用方法二:X补补=0.1011 Y补补=0.1101 -Y补补=1.0011被除数被除数X=0.1011 除数除数Y=0.1101 商商0.1101 余余0.0111*2-4余数再右移四位得正确结果,前面补符号位。余数再右移四位得正确结果,前面补符号位。4.2、补码一位除法、补码一位除法被除数被除数X(余数(余数R)商商Q 操作操作 0.0100 0 0 0 0 0 R Y 异号:异号:商商0 0.1000 0 0 0 0 0 余数余数R和商同时和商同时左移一位左移一位+1.1000 +Y补补 0.0000 0 0 0 0 0 R Y 异号:异号:商商0 0.0000 0 0 0 0 0 余数余数R和商同时和商同时左移一位左移一位+1.1000 +Y补补 1.1000 0 0 0 0 1 R Y 同号:同号:商商1 1.0000 0 0 0 1 0 余数余数R和商同时和商同时左移一位左移一位+0.1000 +-Y补补 1.1000 0 0 0 1 1 R Y 同号:同号:商商1 1.0000 0 0 1 1 0 余数余数R和商同时和商同时左移一位左移一位+0.1000 +-Y补补 1.1000 0 0 1 1 0 1 0 1 1 1 校正:商符取反,商末位置校正:商符取反,商末位置1使用方法二:使用方法二:X补补=0.0100 Y补补=1.1000 -Y补补=0.1000被除数被除数X=0.0100 除数除数Y=1.1000 商商1.0111 余余11.1000*2-4余数再右移四位得正确结果余数再右移四位得正确结果:1.1111 10004、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法和阵列乘法器相比,和阵列乘法器相比,阵列除法器阵列除法器也是一种也是一种并行运算并行运算部件,采用大规模部件,采用大规模集成电路制造。它比早期的串行除法器的控制线路少,并提供较高的集成电路制造。它比早期的串行除法器的控制线路少,并提供较高的运算速度。运算速度。4.3、阵列除法器、阵列除法器 P297可控加可控加/减法单元减法单元(CAS)0.1101 0.1101 0.10110 -0.01101 0.010010 -0.001101 0.0001010 -0.0001101 0.00010100 -0.00001101 0.00000111 4、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法浮点数的表示形式浮点数的表示形式(以以2为底为底):X=S 2 j=定点小数定点小数*2 定点整数定点整数 S 尾数尾数,定点小数,用,定点小数,用补码补码表示,决定表示,决定数的有效精度数的有效精度。j 阶码阶码,定点整数,用,定点整数,用移码移码或或补码补码表示,决定表示,决定数的表示范围数的表示范围。2 基数基数5、浮点四则运算、浮点四则运算IEEE754 国际标准:国际标准:符号位数符号位数 阶码阶码 j 位数位数 尾数尾数S位数位数 总位数总位数短浮点数短浮点数1 8 23 32长浮点数长浮点数1 11 52 64临时浮点数临时浮点数1 15 64 800.8125*10 5浮点数的阶码为什么用移码表示呢?浮点数的阶码为什么用移码表示呢?1)正数的移码大于负数的移码:正数的移码大于负数的移码:X移移 -X移移 原码、补码、反码都不具备。原码、补码、反码都不具备。2)如果:如果:X Y 则则 X移移 Y移移 所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶 码真值大小的比较,其他三种码都不具备这一特性。码真值大小的比较,其他三种码都不具备这一特性。移码移码:补码符号位取反(:补码符号位取反(1表示正号表示正号,0表示负号)表示负号)数据数据0有有唯一唯一的编码,即的编码,即+0移移=-0移移=10000。5、浮点四则运算、浮点四则运算移码运算特点:移码运算特点:1)最高位符号位,最高位符号位,1表示正号表示正号,0表示负号表示负号。如果是双符号位,最高位保持如果是双符号位,最高位保持0:01正数,正数,00负数负数。溢出判断:溢出判断:最高位为最高位为1,10上溢,上溢,11下溢。下溢。2)在计算机中,移码)在计算机中,移码只执行加减法只执行加减法运算,且运算结果运算,且运算结果+2n修正修正;(即(即结果的符号位取反结果的符号位取反)得到得到X移移。例如:例如:X=+1010 Y=+0011,则则X移移=11010Y移移=10011 X移移+Y移移=11010+10011=01101,修正:修正:X+Y移移=11101 运算法则:运算法则:X+Y移移 =X移移+Y补补 X-Y移移 =X移移+-Y补补5、浮点四则运算、浮点四则运算X+Y移移=X移移+Y补补=11010+00011=111014、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法X=104=0110 1000=0.110 1000*27 =0 0111;0.1101000Y=40 =0010 1000=0.101 0000*26 =0 0110;0.10100005.1、浮点加减运算、浮点加减运算思考思考1:X和和Y的尾数可以直接相加减吗?的尾数可以直接相加减吗?思考思考2:对齐阶码后,尾数才能进行加减运算。对齐阶码后,尾数才能进行加减运算。阶码大的向小的看齐?还是小的向大的看齐?阶码大的向小的看齐?还是小的向大的看齐?思考思考3:对齐阶码是不是等于小数点对齐了?对齐阶码是不是等于小数点对齐了?思考思考4:对齐阶码后,尾数应该做什么相应的改变?对齐阶码后,尾数应该做什么相应的改变?Y=40 =0010 1000=0.0101 0000*27 =0 0111;0.01010000 800=0.8103=0.8103=0.08 104+9000=0.9104=90 103=0.9 104 9800=0.98104设有两浮点数设有两浮点数X,Y,其中:,其中:X=SX*2 jX Y=SY*2 jYXY运算执行以下五步:运算执行以下五步:1)阶码对齐(对大阶):阶码对齐(对大阶):使两数的阶码值相等,对齐小数点。使两数的阶码值相等,对齐小数点。求阶码差求阶码差j,j0时,小阶码的尾数时,小阶码的尾数右移右移j位:阶码位:阶码+j,2)尾数相加减尾数相加减:两尾数进行加:两尾数进行加/减运算。减运算。3)尾数规格化:尾数规格化:尾数符号尾数符号 01 或或 10:尾数溢出:尾数溢出。右规:右规:尾数(带符号)尾数(带符号)右移右移1位,位,前补符号位前补符号位。同时阶码同时阶码+1。尾数符号尾数符号 00 或或 11:尾数不溢出:尾数不溢出。但如但如符号位符号位和和最高数值位最高数值位相同相同:00 0 或或 11 1 左规:左规:尾数数值部分尾数数值部分左移直到最高数值位与符号位不同为止左移直到最高数值位与符号位不同为止 (00 1,11 0)。同时阶码减去左移位数。)。同时阶码减去左移位数。5.1、浮点加减运算、浮点加减运算4)尾数舍入(处理多余位)尾数舍入(处理多余位)在执行在执行右规右规或或对阶对阶时,尾数低位上的数值会移掉,使数值的精度时,尾数低位上的数值会移掉,使数值的精度 受到影响,常用受到影响,常用“0”舍舍“1”入入法。法。(三种舍去法:恒舍去,末位恒置(三种舍去法:恒舍去,末位恒置 1,0舍舍1入;入;一般取其精度受影响最小的方法:一般取其精度受影响最小的方法:0舍舍1入入)5)阶码判溢出阶码判溢出 若若阶码符号阶码符号00或或11,不溢出。,不溢出。若若阶码符号阶码符号10 为下溢为下溢,置,置运算结果为零运算结果为零,若若阶码符号阶码符号01 为上溢为上溢,置,置溢出标志溢出标志。5.1、浮点加减运算、浮点加减运算X=0111 00.1101000 jX SXY=0110 00.1010000 jY SYSYjY+1SXjX+1SXjX+1NoNoYes jX=jY?SX+-SY SXjX(or jY)jXXf1Xf2=1Xf1Xf2 X1+Xf1Xf2 X1=1?SXjX-1输出输出YesYesNo3)尾数规格化)尾数规格化 00.1101000 SX+00.0101000 SY 01.0010000右规:右规:0111 00.10010000左规左规右规右规2)尾数加减)尾数加减1)阶码对齐)阶码对齐4)尾数舍入)尾数舍入5)阶码判溢出)阶码判溢出 jX jY?NoYes例例:已知已知 X=0.11011011*2010,Y=-0.10101100*2100 求求 X+Y解解:阶码对齐:阶码对齐:jX补补=00 0010 jY补补=00 0100 -jY补补 =11 1100 求阶差求阶差j=jX补补+-jY补补=00 0010+11 1100=11 1110(-2)X 的阶码小:的阶码小:X阶码阶码 +2(jX补补=jY补补 =00 0100)X的尾数右移的尾数右移2位,前面补符号位位,前面补符号位 SX补补=00 0011011011(此时保留右移数据,不丢不舍)(此时保留右移数据,不丢不舍)尾数相加:尾数相加:SX补补=SX补补+SY补补=00 0011011011 +11 01010100 =11 10001010 11 尾数规格化:尾数规格化:左规左规:数值位左移数值位左移1位位 =11 000101011 阶码阶码-1(jX补补=00 0011)尾数舍入:尾数舍入:舍去的附加位最高位为舍去的附加位最高位为1,结果最低位,结果最低位+1:Sx补补=11 00010110 S=-0.11101010 阶码判溢出:阶码判溢出:阶码符号为阶码符号为00,不溢出。,不溢出。最终结果为:最终结果为:X+Y=-0.11101010*2011实际运算时,先确定位数!(阶码、尾数最好都取双符号位参加运算。)实际运算时,先确定位数!(阶码、尾数最好都取双符号位参加运算。)假设机器字长假设机器字长16位,采用浮点表示数,其中阶符位,采用浮点表示数,其中阶符2位,阶码位,阶码4位,尾符位,尾符2位,尾位,尾数数8位,位,都用补码都用补码表示。表示。4、定点除法运算、定点除法运算4.1、原码一位除法、原码一位除法4.2、补码一位除法、补码一位除法4.3、阵列除法器、阵列除法器5、浮点四则运算、浮点四则运算5.1、浮点加减运算、浮点加减运算对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法X=SX 2 jX Y=SY 2 jYX*Y=(SX*SY)2 jX+jY X/Y=(SX/SY)2 jX-jY 5.2、浮点乘除运算、浮点乘除运算1)阶码加减:)阶码加减:乘法:乘法:jX+jY,除法:除法:jX-jY 2)尾数乘除:)尾数乘除:乘法:乘法:SX*SY,除法:,除法:SX/SY 3)尾数规格化:)尾数规格化:4)尾数舍入:)尾数舍入:有可能带来又一次规格化。有可能带来又一次规格化。5)阶码判溢出:)阶码判溢出:检查阶码上下溢出。检查阶码上下溢出。例如:例如:求求X*Y,X=0.0110011 *2-5Y=-0.1110010*2 3 阶码(含符号位)用阶码(含符号位)用4位移码表示,采用单符号位。位移码表示,采用单符号位。尾数(含符号位)用尾数(含符号位)用8位补码表示,采用单符号位。位补码表示,采用单符号位。jX补补=11 011 jX移移=00 011jY补补=00 011 jY移移=01 011 SX补补=00.0110011-SX补补=11.1001101 SY补补=11.0001110X浮浮=00 011,00.0110011Y浮浮=01 011,11.0001110 5.2、浮点乘除运算、浮点乘除运算1)阶码相加:)阶码相加:jX+jY 移移=jX 移移+jY 补补 =00 011+00 011=00 1102)尾数相乘:)尾数相乘:SX补补*SY补补=0.0110011*1.0001110 =11.10100101001010 XY浮浮=00 110,11.101001010010103)尾数规格化)尾数规格化:符号位与最高数值位相同,需要规格化(尾数左移一位,阶码符号位与最高数值位相同,需要规格化(尾数左移一位,阶码-1)XY浮浮=00 101,11.010010100101004)尾数舍入:)尾数舍入:尾数设尾数设8位,位,0舍舍1入,则入,则 XY浮浮=00 101,11.01001015)阶码判溢出:)阶码判溢出:阶码两符号位相同,不溢出。阶码两符号位相同,不溢出。则则 XY浮浮=0 101,1.01001015.2、浮点乘除运算、浮点乘除运算浮点运算器浮点运算器浮点运算浮点运算由由阶码阶码定点定点运算运算和和尾数尾数定点定点运算运算组成。组成。阶码阶码部分执行部分执行加、减法加、减法运算。运算。尾数尾数部分执行部分执行加、减、乘、除加、减、乘、除运算,左规时有时需要左移多位。运算,左规时有时需要左移多位。因此,浮点运算器中其实就是定点运算器!因此,浮点运算器中其实就是定点运算器!复习与作业复习与作业复习章节:复习章节:第第6章章 计算机的运算方法计算机的运算方法6.3定点运算定点运算6.3.1 移位运算移位运算 6.3.4 除法运算除法运算6.4 浮点四则运算浮点四则运算作业:作业:P291 21、25、26、28、29、30