第3章 运算方法和运算部件3.ppt

上传人:s****8 文档编号:82705164 上传时间:2023-03-26 格式:PPT 页数:70 大小:418.50KB
返回 下载 相关 举报
第3章 运算方法和运算部件3.ppt_第1页
第1页 / 共70页
第3章 运算方法和运算部件3.ppt_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《第3章 运算方法和运算部件3.ppt》由会员分享,可在线阅读,更多相关《第3章 运算方法和运算部件3.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、3.2.3 定点数和浮点数 计算机中的两种表示方式n n数值范围:一种数据类型所能表示的最大值和最小值n n数据精度:实数所能表示的有效数字位数。n n数值范围和数据精度均与使用多少位二进制位数以及编码方式有关。n n计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。1 1.数的定点表示方法(1).(1).定点整数定点整数小数点位置固定在数的最低位之后小数点位置固定在数的最低位之后 如:如:D Dn-1 n-1 D Dn-2 n-2 D D1 1 D D0 0.范围:范围:2 2n-1 n-1-1-1 -2-2n-1 n-1 (采用字长采用字长n=16n=16位补码时其

2、位补码时其值为值为32767 -32768)32767 -32768)(2).(2).定点小数定点小数小数点位置固定在数的符号位之后、数小数点位置固定在数的符号位之后、数值最高位之前。值最高位之前。如:如:D D0 0.D D-1 -1 D D-(n-2)-(n-2)D D-(n-1)-(n-1)范围范围:1-1-2 2-(n-1)-(n-1)-1-1 (采用字长采用字长n=16n=16位时其值为位时其值为32767/32768 -1)32767/32768 -1)其中其中n n表示字长多少位表示字长多少位2(1)浮点数的表示:是把字长分成阶码和尾数两部分。其根据就是:J Em-2.m-2.E

3、0 0 S D-1-1D-(n-1)-(n-1)阶符阶符 阶码值阶码值 数符数符 .尾数值尾数值 S J Em-2.m-2.E0 0 D-1-1D-(n-1)-(n-1)数符数符 阶符阶符 阶码值阶码值 .尾数值尾数值 通常,阶码为补码或移码定点整数,尾数为补码或原码通常,阶码为补码或移码定点整数,尾数为补码或原码定点小数定点小数。2.数的浮点表示方法3 移码(增码)表示法X移移=基准值+X 如:基准值基准值=2n-1 即补码符号位取反得移码 2n-1-1 X-2n-1 X X1 1=0101 0101=0101 0101 X X1 1 补补=0101 0101=0101 0101 X X1

4、1 移移=1101 0101=1101 0101X X2 2=-0101 0101=-0101 0101 X X2 2 补补=1010 1011=1010 1011 X X2 2 移移=0010 1011=0010 10114 (2)浮点数的规格化n n目的:字长固定的情况下提高表示精度的措施:1 增加尾数位数(但数值范围减小)2 采用浮点规格化形式5n n规格化方法:调整阶码使尾数满足下列关系:规格化方法:调整阶码使尾数满足下列关系:uu尾数为原码表示时,无论正负应满足尾数为原码表示时,无论正负应满足1/21/2|d|11 即:小数点后的第一位数一定要为即:小数点后的第一位数一定要为1 1。

5、正数的尾数应为0.1x.x负数的尾数应为1.1x.xuu尾数用补码表示时,小数最高位应与数符符号位尾数用补码表示时,小数最高位应与数符符号位相反。相反。正数应满足 1/2d d-1,即 1.0 x.x6例题:设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。则:1.求X=256.5 的第一种浮点表示格式 X=(256.5)X=(256.5)10 10=+(100000000.1)=+(100000000.1)2 2=+(0.1000000001 x=+(0.1000000001 x 2 2+9+9)2

6、 2 8位阶码为:(+9)补补=0000 1001 24位尾数为:(+0.10 0000 0001)补补 =0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为:0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)167 Y=-(256.5)10=-(100000000.1)2 =-0.1000000001 x2+9 8位阶码为:(+9)补补=0000 1001 24位尾数为:(-0.10 0000 0001)补补 =1.011 1111 1110 0000 0000 0000 所

7、求-256.5的浮点表示格式为:0000 1001 1011 1111 1110 0000 0000 0000 用16进制表示此结果则为:(09BFE000)162.求Y=-256.5 的第一种浮点表示格式8(3)溢出问题n n 定点数的溢出定点数的溢出根据数值本身判断根据数值本身判断n n 浮点数的溢出浮点数的溢出根据规格化后的阶码判断根据规格化后的阶码判断上溢浮点数阶码大于机器最大阶码 中断下溢浮点数阶码小于机器最小阶码 零处理溢出的具体判断方法将结合实例在后续课程中介绍溢出的具体判断方法将结合实例在后续课程中介绍93.微机中所能表示的数值类型 n n(1)无符号二进制数(字节、字和双字)

8、n n(2)带符号的二进制定点整数形式(16、32、64位补码表示)和18位BCD码整数形式(80bit)。n n(3)浮点数(IEEE754标准)包括数符S、阶码E和尾数D三个字段。10 微机中的四种整数类型整数类型 数值范围 精 度 格 式16位整数 -3276832767 二进制16位 补码表示 短整数 -231 231-1 二进制32位 补码表示 长整数 -263 263-1 二进制64位 补码表示 BCD整数 -1018+11018-1 十进制18位 80个二进制其中最左面1字节的最高位是符号位,余7位无效;另外72位是18位BCD码,原码表示。11IEEE754标准格式如下 n n

9、 (-1)S 2E (D0.D-1D-(P-1)n n最高是数符S占1位,0表示正、1表示负;指数项E,基数是2,E是一个带有一定偏移量的无符号整数;尾数部分D,它是一个带有一位整数位的二进制小数真值形式。其规格化形式应调整阶码使其尾数整数位D0为1且与小数点一起隐含掉。1213微机中浮点数表示成规格化形式,如下图所示:n n单精度单精度 31 30 23 22 031 30 23 22 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 1 1 n n双精度双精度 63 62 52 51 0 63 62 52 51 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 11扩展精度扩展精度 7

10、9 78 64 63 0 79 78 64 63 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 n n 微机中浮点数的三种表示形式微机中浮点数的三种表示形式 14例如将十进制数178.125表示成微机中的单精度浮点数n n解:178.125=10110010.001B =1.0110010001x27 指数E=7+127=134=10000110B 127是单精度浮点数应加的指数偏移量,其完整的浮点数形式为:0 10000110 011 0010 0010 0000 0000 0000 =43322000H15例:将下面Pentium机中的单精度浮点数表示成十进制真值是多少?0011,1

11、111,0101,1000,0000,0000,0000,0000数符:S=(-1)0=1 (正号)阶码:E=(01111110)2-127=126-127=-1尾数:D=(1.1011)2X=1.1011x2-1=(0.11011)2=0.84375163.2.4 数字化信息的编码及表示 计算机进行数据处理和运算,就必须首先实现数字化表达。另外由于计算机除了数据处理和运算外,还要进行各种文字(特别是中文)的处理与编辑。因此,所有由计算机处理的信息也要用数字进行编码。这样在物理机制上可以以数字信号表示.17 信息的数字化表示形式n n数字信号:是一种在时间上或空间上离散的信号,单个信号是常用的

12、二值逻辑(0或1),依靠多位信号组合表示广泛的信息.181.用一串脉冲信号表示数字代码(先发低位后发高位为例)1 0 1 10tU192.用一组电平信号表示数字代码0tU10tU10tU00tU120 n n3.用一组数字代码表示字符(如ASCII码)n n4.用若干点的组合表示图像 (如图形点阵码)n n5.用数字信号表示声音 (如VCD DVD光盘)n n6.用数字代码表示命令与状态21数字化方法表示信息的优点:n n抗干扰能力强,可靠性高;n n位数增多则数的表示范围可扩大;n n物理上容易实现,并可存储;n n表示信息的范围与类型极其广泛;n n能用逻辑代数等数字逻辑技术进行处理.22

13、3.3 二进制乘法运算1.软件编程方法实现软件编程方法实现(时序控制乘法器)时序控制乘法器)由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、异号相乘位负,单独决定符号位

14、。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号位直接参加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。2.硬件快速乘法器实现硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。

15、部分积的相加,成为阵列乘法器。233.3.1 定点数一位乘法定点数一位乘法1.定点原码一位乘定点原码一位乘规则规则规则规则:在机器中采用在机器中采用在机器中采用在机器中采用A,B,CA,B,C寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘数和乘数数和乘数数和乘数数和乘数 (1 1)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积

16、相加。每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积相加。(2 2)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍.由于在求本由于在求本由于在求本由于在求本次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运

17、算,次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一位。相加数可直送而不必偏移,于是用用用用N N位加法器就可实现两个位加法器就可实现两个位加法器就可实现两个位加法器就可实现两个N N位数相乘。位数相乘。位数相乘。位数相乘。(3 3)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加

18、数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一位,因此,完成乘法运算后,位,因此,完成乘法运算后,位,因此,完成乘法运算后,位,因此,完成乘法运算后,A A寄存器中保存乘积的高寄存器中保存乘积的高寄存器中保存乘积的高寄存器中保存乘积的高位部分,乘数寄存器位部分,乘数寄存器位部分,乘数寄

19、存器位部分,乘数寄存器C C中保存乘积的低位部分。中保存乘积的低位部分。中保存乘积的低位部分。中保存乘积的低位部分。24算法表示如下:P P0 0=0=0 P P1 1=(P P0 0+Xy+Xyn n)2 2-1-1 P P2 2=(P P1 1+Xy+Xyn-1n-1)2 2-1-1 P Pn n=(P Pn-1n-1+Xy+Xy1 1)2 2-1-1=25例例:设设X=0.1101,Y=0.1011,求求XY.其中寄存器其中寄存器B=X ,Cd=4.流程图流程图3.6 计算过程如下计算过程如下:0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 10 0

20、0 1 1 0 1 1 0 10 0 1 1 0 10 1 0 0 1 10 0 1 0 0 1 1 1 1 00 0 0 0 0 00 0 1 0 0 10 0 0 1 0 0 1 1 1 10 0 1 1 0 10 1 0 0 0 10 0 1 0 0 0 1 1 1 1 +x右移一位+x右移一位+0右移一位+x右移一位部分积 A 乘数 C 乘积高位 乘积低位1(丢失)1(丢失)0(丢失)1(丢失)XY=0.1000111126 n注意:注意:n两操作数的绝对值相乘,两操作数的绝对值相乘,符号位单独符号位单独处理。处理。n寄存器寄存器A.B均设置双符号位,第均设置双符号位,第1符号符号位始

21、终是部分积符号,决定在右移时位始终是部分积符号,决定在右移时第第1符号位补符号位补0n操作步数由乘数的尾数位数决定,用操作步数由乘数的尾数位数决定,用计数器计数器Cd来计数。即作来计数。即作n次累加和移次累加和移位。位。n最后是加符号位,根据最后是加符号位,根据Sx Sy决定。决定。271)X补与X真值的关系设X补=X0.X1X2Xn,则有X补=2X0+X X=X补-2X0 =X0.X1X2Xn-2X0 =-X0+0.X1X2Xn2)X/2补的计算 X/2=-X0/2+0.0X1X2Xn =-X0+0.X0X1X2Xn 故X/2补=X0.X0X1X2Xn,即将X补的符号位与数值位一起右移并保持

22、符号位不变2.定点补码一位乘法定点补码一位乘法283 3)定点补码一位乘法算法一:)定点补码一位乘法算法一:设设YY补补=Y=Y0.0.Y Y1 1Y Y2 2Y Yn n 则则 Y=-YY=-Y0 0+X*Y X*Y补补=X=X补补*Y=XY=X补补(-Y-Y0 0+)=XX补补Y Y0 0 当当Y Y为正值时,为正值时,XX补补Y Y0 0 为为0 0,与原码的乘法规则相同,与原码的乘法规则相同当当Y Y为负值时,为负值时,XX补补Y Y0 0 为为XX补补,在原码乘法的基础上减,在原码乘法的基础上减去去XX补补4 4)定点补码一位乘法算法二:)定点补码一位乘法算法二:X*YX*Y补补=X

23、X补补*(-Y-Y0 0+Y+Y1 1*2*2-1-1+Y+Y2 2*2*2-2-2+Y Yn n*2*2-n-n)=X=X补补*-Y-Y0 0+(Y+(Y1 1-Y-Y1 1*2*2-1-1)+(Y)+(Y2 2*2*2-1-1+Y+Y2 2*2*2-2-2)+()+(Y Yn n*2*2-n+1-n+1-Y Yn n*2*2-n n)=X=X补补*(Y(Y1 1-Y-Y0 0)+(Y)+(Y2 2-Y-Y1 1)*2)*2-1-1+(Y+(Yn n-Y-Yn-1n-1)*2)*2-n+1-n+1+(0+(0 Y Yn n)*2)*2-n-n=X=X补补*29 这种算法称为Booth算法,也

24、称为比较法。这种算法,也称为比较法。这种方法在机器实现中要在乘数末位方法在机器实现中要在乘数末位Yi i之后再增加一之后再增加一个附加位个附加位Yi+1i+1,并令其初始值为并令其初始值为0。然后根据比较。然后根据比较Yi i、Yi+1i+1的值决定下一步操作,规则如下:的值决定下一步操作,规则如下:(部分部分积初始为积初始为0)Yi i Yi+1 i+1 操操 作作 0 0 原部分积右移一位原部分积右移一位 0 1 原部分积加原部分积加X补补补补后再右移一位后再右移一位 1 0 原部分积加原部分积加-X补补补补后再右移一位后再右移一位 1 1 原部分积右移一位原部分积右移一位30例例3.35

25、:设设X=-0.1101,Y=0.1011,即即X补补=11.0011,Y补补=0.1011 ,-X=00.1101 求求XY补补.计算过程如下计算过程如下:0 0 0 0 0 0 0.1 0 1 1 0 初始值,最后一位补0 0 0 1 1 0 1 Y5Y4=01 +-X补0 0 1 1 0 10 0 0 1 1 0 1 0 1 0 1 1 右移一位0 0 0 0 0 0 Y4Y3=11 +00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y3Y2=10 +X补1 1 0 1 1 01 1 1 0 1 1 0 0 1 0 1 0 右移一位

26、 0 0 1 1 0 1 Y2Y1=01 +-X补0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移一位1 1 0 0 1 1 Y1Y0=10 +X补1 1 0 1 1 1 0 0 0 1+部分积 乘数Y Yi Yi+1 说明乘积高位 乘积低位XY补=1.01110001,XY=-0.1000111131 n n初始值与符号位:初始值与符号位:A寄存器存放部分累加和,寄存器存放部分累加和,初始为初始为0,采用双符号位。第,采用双符号位。第1符号位指示累符号位指示累加和的正负,以控制右移时补加和的正负,以控制右移时补0或补或补1。B中中存放被乘数的补码,双符号位。存放被乘

27、数的补码,双符号位。n n基本操作:用基本操作:用C寄存器最末两位作判断位,寄存器最末两位作判断位,决定下一步的操作。决定下一步的操作。n n移位移位:在右移时,第在右移时,第2符号位值移入位数的最符号位值移入位数的最高位,第高位,第1符号位值不变且移入第符号位值不变且移入第2符号位符号位,而而A寄存器末位移寄存器末位移入入C寄存器。寄存器。n n步数与最后一步操作步数与最后一步操作:乘数有效位是乘数有效位是4位,共位,共作作5步。注意,最后一步不移位因为这一步步。注意,最后一步不移位因为这一步是用来处理符号位的。是用来处理符号位的。323.4.1 定点除法运算 1.1.定点原码一位除法定点原

28、码一位除法定点原码一位除法定点原码一位除法 有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先减后判,如减后发现不够减,则在下一步改作加除数操作。这样减后判,如减后发现不够减,则在下一步改作加除数操作。这样减后

29、判,如减后发现不够减,则在下一步改作加除数操作。这样减后判,如减后发现不够减,则在下一步改作加除数操作。这样操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:(1)(1)要求被除数要求被除数要求被除数要求被除数|X|X|除数除数除数除数|Y|,|Y|,并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号位单独处理,商的符号为相除两数符号的半加和。位单独处理,商的符号为相除两数符号的半加和。位单独处理,商的符号为相除两数符号的半加和。位单独处理

30、,商的符号为相除两数符号的半加和。(2 2)被除数的位数可以是除数的两倍,其低位的数值部分开始)被除数的位数可以是除数的两倍,其低位的数值部分开始)被除数的位数可以是除数的两倍,其低位的数值部分开始)被除数的位数可以是除数的两倍,其低位的数值部分开始时放在商寄存器中。运算中时放在商寄存器中。运算中时放在商寄存器中。运算中时放在商寄存器中。运算中,放被除数和商的放被除数和商的放被除数和商的放被除数和商的A A、C C寄存器同时寄存器同时寄存器同时寄存器同时移位,并将商寄存器移位,并将商寄存器移位,并将商寄存器移位,并将商寄存器C C中最高位移到被除数寄存器中最高位移到被除数寄存器中最高位移到被除

31、数寄存器中最高位移到被除数寄存器A A的最低位中。的最低位中。的最低位中。的最低位中。(3 3)每步操作后,可根据余数)每步操作后,可根据余数)每步操作后,可根据余数)每步操作后,可根据余数RiRi符号来判断是否够减:符号来判断是否够减:符号来判断是否够减:符号来判断是否够减:RiRi位正位正位正位正表明够减,上商表明够减,上商表明够减,上商表明够减,上商QQ为为为为1 1。RiRi为负表明不够减,上商为负表明不够减,上商为负表明不够减,上商为负表明不够减,上商QQ为为为为0 0。(4 4)基本操作可用通式描述为:)基本操作可用通式描述为:)基本操作可用通式描述为:)基本操作可用通式描述为:R

32、iRi=2Ri+(1-2Qi)Y=2Ri+(1-2Qi)Y (5(5原码除的思想是先当成正数相除,若最后一步所得余数为负,原码除的思想是先当成正数相除,若最后一步所得余数为负,原码除的思想是先当成正数相除,若最后一步所得余数为负,原码除的思想是先当成正数相除,若最后一步所得余数为负,则应恢复余数,但不移位,以保持则应恢复余数,但不移位,以保持则应恢复余数,但不移位,以保持则应恢复余数,但不移位,以保持RiRi为正。为正。为正。为正。举例如下:举例如下:举例如下:举例如下:33例例3.39:设被乘数设被乘数X=0.1011,Y=0.1101,用加减交替法求用加减交替法求X/Y.-Y补补=11.0

33、011,计算过程如下计算过程如下:0 0 1 0 1 1 0 0 0 0 0 开始情形1 1 0 0 1 1 +-Y补1 1 1 1 1 0 0 0 0 0 0 不够减,商上01 1 1 1 0 0 0 0 0 0 0 左移0 0 1 1 0 1 +Y0 0 1 0 0 1 0 0 0 0 1 够减,商上10 1 0 0 1 0 0 0 0 1 0 左移1 1 0 0 1 1 +-Y补0 0 0 1 0 1 0 0 0 1 1 够减,商上10 0 1 0 1 0 0 0 1 1 0 左移 1 1 0 0 1 1 +-Y补1 1 1 1 0 1 0 0 1 1 0 不够减,商上01 1 1 0

34、1 0 0 1 1 0 0 左移0 0 1 1 0 1 +Y0 0 0 1 1 1 0 1 1 0 1 够减,商上1+)+)+)+)+)被除数(余数R)(被除数)(商)操作说明余数 商X/Y=0.1101,余数=0.011134n nA A寄存器中开始时存放被除数的绝对值,以后将存寄存器中开始时存放被除数的绝对值,以后将存寄存器中开始时存放被除数的绝对值,以后将存寄存器中开始时存放被除数的绝对值,以后将存放各次余数,取双符号位。放各次余数,取双符号位。放各次余数,取双符号位。放各次余数,取双符号位。B B寄存器存放除数的绝寄存器存放除数的绝寄存器存放除数的绝寄存器存放除数的绝对值,取双符号位。

35、对值,取双符号位。对值,取双符号位。对值,取双符号位。C C寄存器同来存放商,取单符寄存器同来存放商,取单符寄存器同来存放商,取单符寄存器同来存放商,取单符号位。号位。号位。号位。n n第一步操作:将被除数第一步操作:将被除数第一步操作:将被除数第一步操作:将被除数X X视为初始余数视为初始余数视为初始余数视为初始余数R R0 0,根据根据根据根据R R0 0符符符符号位正(绝对值),令商符为号位正(绝对值),令商符为号位正(绝对值),令商符为号位正(绝对值),令商符为0 0,正是的商符以后再,正是的商符以后再,正是的商符以后再,正是的商符以后再置入。第一步为置入。第一步为置入。第一步为置入。

36、第一步为-Y-Y。n n商值则根据余数商值则根据余数商值则根据余数商值则根据余数R R0 0的符号来决定,正则商上的符号来决定,正则商上的符号来决定,正则商上的符号来决定,正则商上1 1,求下,求下,求下,求下一位商的办法是余数左移一位再减去除数;当余数一位商的办法是余数左移一位再减去除数;当余数一位商的办法是余数左移一位再减去除数;当余数一位商的办法是余数左移一位再减去除数;当余数为负则商上为负则商上为负则商上为负则商上0 0,求下一位商的办法是余数左移一位再,求下一位商的办法是余数左移一位再,求下一位商的办法是余数左移一位再,求下一位商的办法是余数左移一位再加上除数。左移位时末位补加上除数

37、。左移位时末位补加上除数。左移位时末位补加上除数。左移位时末位补0 0。n n操作步数与最后一步操作:如果要求得操作步数与最后一步操作:如果要求得操作步数与最后一步操作:如果要求得操作步数与最后一步操作:如果要求得n n位商(不含位商(不含位商(不含位商(不含符号位),则需作符号位),则需作符号位),则需作符号位),则需作n n步步步步“左移左移左移左移-加减加减加减加减”循环;若第循环;若第循环;若第循环;若第n n步余数为负,则需增加一步恢复余数,这增加的一步余数为负,则需增加一步恢复余数,这增加的一步余数为负,则需增加一步恢复余数,这增加的一步余数为负,则需增加一步恢复余数,这增加的一步

38、不移位。步不移位。步不移位。步不移位。352.定点补码一位除法(加减交替法)n n补码除法规则表:补码除法规则表:X X补、补、补、补、Y Y补、补、补、补、r补补补补分别为被除数、除数和余分别为被除数、除数和余分别为被除数、除数和余分别为被除数、除数和余数数数数 X X补补Y Y补补数数 符符商符商符第一步第一步操作操作r r补补 Y Y补补数数 符符 上商上商 下一步操作下一步操作同号同号 0 0 减法减法同号(够减)同号(够减)异号(不够减)异号(不够减)1 1 0 022r ri i补补-Y-Y补补22r ri i补补+Y+Y补补异号异号 1 1 加法加法同号(不够减)同号(不够减)异

39、号(够减)异号(够减)1 1 0 022r ri i补补-Y-Y补补22r ri i补补+Y+Y补补36 n n以上是在以上是在以上是在以上是在|X|Y|X|Y|即不溢出的前提下;即不溢出的前提下;即不溢出的前提下;即不溢出的前提下;(1 1)第一步如果被除数与除数同号,用被除数减去除数;)第一步如果被除数与除数同号,用被除数减去除数;)第一步如果被除数与除数同号,用被除数减去除数;)第一步如果被除数与除数同号,用被除数减去除数;若两数异号,用被除数加上除数。如果所得余数与除数若两数异号,用被除数加上除数。如果所得余数与除数若两数异号,用被除数加上除数。如果所得余数与除数若两数异号,用被除数加

40、上除数。如果所得余数与除数同号上商同号上商同号上商同号上商1 1,若余数与除数异号,上商,若余数与除数异号,上商,若余数与除数异号,上商,若余数与除数异号,上商0 0,该商即为结果,该商即为结果,该商即为结果,该商即为结果的符号位。的符号位。的符号位。的符号位。(2 2)求商的数值部分)求商的数值部分)求商的数值部分)求商的数值部分 如果上次上商如果上次上商如果上次上商如果上次上商1 1,将余数左移一位,将余数左移一位,将余数左移一位,将余数左移一位后减去除数;如果上次上商后减去除数;如果上次上商后减去除数;如果上次上商后减去除数;如果上次上商0 0,将余数左移一位后加上,将余数左移一位后加上

41、,将余数左移一位后加上,将余数左移一位后加上除数。然后判断本次操作后的余数,如果余数与除数同除数。然后判断本次操作后的余数,如果余数与除数同除数。然后判断本次操作后的余数,如果余数与除数同除数。然后判断本次操作后的余数,如果余数与除数同号上商号上商号上商号上商1 1;若余数与除数异号上商;若余数与除数异号上商;若余数与除数异号上商;若余数与除数异号上商0 0。如此重复执行。如此重复执行。如此重复执行。如此重复执行 n-l-l次(设数值部分有次(设数值部分有次(设数值部分有次(设数值部分有n n位)。位)。位)。位)。(3 3)商的最后一位一般采用恒置)商的最后一位一般采用恒置)商的最后一位一般

42、采用恒置)商的最后一位一般采用恒置1 1的办法,井省略了最低的办法,井省略了最低的办法,井省略了最低的办法,井省略了最低位位位位+1+1的操作,此时最大误差为士的操作,此时最大误差为士的操作,此时最大误差为士的操作,此时最大误差为士2 2-n-n.如果对商的精度要如果对商的精度要如果对商的精度要如果对商的精度要求较高则可按规则(求较高则可按规则(求较高则可按规则(求较高则可按规则(2 2)再进行一次操作以求得商的第)再进行一次操作以求得商的第)再进行一次操作以求得商的第)再进行一次操作以求得商的第n n位。当除不尽时若商为负,要在商的最低一位加位。当除不尽时若商为负,要在商的最低一位加位。当除

43、不尽时若商为负,要在商的最低一位加位。当除不尽时若商为负,要在商的最低一位加 1 1,使,使,使,使商从反码值转变成补码值商从反码值转变成补码值商从反码值转变成补码值商从反码值转变成补码值;若商为正最低位不需要加若商为正最低位不需要加若商为正最低位不需要加若商为正最低位不需要加1 1。37例例3.40:设设X补补=1.0111,Y补补=0.1101,求求X/Y补补.-Y补补=11.0011,计算过程如下计算过程如下:X/Y补=1.01011 1 0 1 1 1 0 0 0 0 0 开始情形0 0 1 1 0 1 两数异号+Y补?书0 0 0 1 0 0 0 0 0 0 1 余数与除数同号,商上

44、10 0 1 0 0 0 0 0 0 1 0 左移1 1 0 0 1 1 上次商1,+-Y补1 1 1 0 1 1 0 0 0 1 0 余数与除数异号,商上01 1 0 1 1 0 0 0 1 0 0 左移0 0 1 1 0 1 上次商0,+Y补0 0 0 0 1 1 0 0 1 0 1 余数与除数同号,商上10 0 0 1 1 0 0 1 0 1 0 左移 1 1 0 0 1 1 上次商1,+-Y补1 1 1 0 0 1 0 1 0 1 0 余数与除数异号,商上01 1 0 0 1 0 1 0 1 0 1 左移,商的最低位恒置1+)+)+)+)被除数(余数)商 操作说明余数 商38 n n例

45、例3.40最低位恒置最低位恒置1,余数不正确。,余数不正确。n nA寄存器存放被除数(补码),以后存放余数,寄存器存放被除数(补码),以后存放余数,取双符号位。取双符号位。B寄存器存放除数(补码),双寄存器存放除数(补码),双符号位。符号位。C寄存器存放商,初始值为寄存器存放商,初始值为0(未考(未考虑商符之前),单符号位。虑商符之前),单符号位。n n如余数为如余数为0,则表示除尽。例,则表示除尽。例3.41如采用商的如采用商的最低位恒置最低位恒置1的方法,其误差为的方法,其误差为2-n=2-4。n n补码除法规则表补充说明:补码除法规则表补充说明:1、表中、表中i=0n-1.2、上采用末位

46、恒置上采用末位恒置1的方法,操作简便。如要的方法,操作简便。如要提高精度,则按上述规则多求一位,再采用提高精度,则按上述规则多求一位,再采用以下方法对商进行处理:以下方法对商进行处理:两数能除尽时,如除数两数能除尽时,如除数两数能除尽时,如除数两数能除尽时,如除数为正,商不必加为正,商不必加为正,商不必加为正,商不必加2 2-n-n,如除数为负,商加如除数为负,商加如除数为负,商加如除数为负,商加2 2-n-n;两数除两数除两数除两数除不尽时,如商为正,商不必加不尽时,如商为正,商不必加不尽时,如商为正,商不必加不尽时,如商为正,商不必加2 2-n-n,如商为负,商加如商为负,商加如商为负,商

47、加如商为负,商加 2 2-n-n 。39 n n例例例例3.42 X3.42 X补补补补=1.0111,Y=1.0111,Y补补补补=1.0011,=1.0011,则则则则-Y-Y补补补补 =0.1101=0.1101。求。求。求。求X/YX/Y补补补补=?被除数(余数)被除数(余数)被除数(余数)被除数(余数)商商商商 操作说明操作说明操作说明操作说明 1111。0111 0111 +00 +00。1101 1101 两数同号,两数同号,+-Y+-Y补补 0000。0100 0 0100 0 余数与除数异号,商余数与除数异号,商0 0 左移左移 0000。10001000 +11 +11。0

48、011 +Y0011 +Y补补 1111。1011 01 1011 01 同号,商同号,商1 1 左移左移 1111。01100110 +00 +00。1101 +-Y1101 +-Y补补 0000。0011 010 0011 010 异号,商异号,商0 0 左移左移 0000。0110 0110 +11 +11。0011 +Y0011 +Y补补 1111。1001 0101 1001 0101 同号,商同号,商1 1 左移左移 1111。00100010 +00 +00。1101 +-Y1101 +-Y补补 1111。1111 01011 1111 01011 同号,商同号,商1 1X/YX

49、/Y补补=0.1011 =0.1011 余数余数 补补=1=1。1111x21111x2-4-4 403.5 浮点数的运算方法浮点数的表示形式(以浮点数的表示形式(以2为底):为底):N=D 2E其中,其中,D为浮点数的尾数,一般为绝对值小于为浮点数的尾数,一般为绝对值小于1的的规格化二进制小数用原码或补码形式表示;规格化二进制小数用原码或补码形式表示;E为为浮点数的阶码,一般是用移码或补码表示的整浮点数的阶码,一般是用移码或补码表示的整数。数。阶码的底除了阶码的底除了2以外,还有用以外,还有用8或或16表示的,表示的,这里先以这里先以2为底进行讨论。然后再简介以为底进行讨论。然后再简介以8或

50、或16为底的数的运算。为底的数的运算。41 1.加、减法运算加、减法运算两数首先两数首先两数首先两数首先均为规格化数均为规格化数均为规格化数均为规格化数,在进行规格化浮点数,在进行规格化浮点数,在进行规格化浮点数,在进行规格化浮点数的加减运算需经过五步完成:的加减运算需经过五步完成:的加减运算需经过五步完成:的加减运算需经过五步完成:n n 对阶操作:低阶向高阶补齐,使阶码相等;对阶操作:低阶向高阶补齐,使阶码相等;对阶操作:低阶向高阶补齐,使阶码相等;对阶操作:低阶向高阶补齐,使阶码相等;n n 尾数运算:阶码对齐后直接对尾数运算;尾数运算:阶码对齐后直接对尾数运算;尾数运算:阶码对齐后直接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁