五章运算方法和运算器课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《五章运算方法和运算器课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法 运算器 课件
- 资源描述:
-
1、 第五章 运算方法和运算器本章着重讨论两个大问题:本章着重讨论两个大问题:运算方法运算方法:即即计算机中数值数据的计算机中数值数据的运算规则运算规则 加减法(定点,浮点)加减法(定点,浮点)(补码为重点)(补码为重点)移位运算移位运算 乘除法(定点,浮点)乘除法(定点,浮点)(难点)(难点)逻辑运算逻辑运算运算器的基本结构和工作原理运算器的基本结构和工作原理:着重讨论运算规则的具体物理实现着重讨论运算规则的具体物理实现(难点)(难点)规则规则第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 5.1.15.1.1原码加减法原码加减法原码加减运算规则原码加减运算规则(P P9494
2、 ):要考虑要考虑符号符号和和数值数值两部分两部分同号相加同号相加和和异号相减异号相减:数值部分相加,结果的符号取被加(减)数值部分相加,结果的符号取被加(减)数符号数符号;异号相加异号相加和和同号相减同号相减:数值部分相减,结果的符号取绝对值大数值部分相减,结果的符号取绝对值大的数的符号,但数值部分相减,要将的数的符号,但数值部分相减,要将减数变补减数变补,变为加法,变为加法进行。进行。对于定点机,两数同号相加和异号相减,结果可能溢对于定点机,两数同号相加和异号相减,结果可能溢出,须作溢出判断。一般机器溢出后,提示溢出信息,出,须作溢出判断。一般机器溢出后,提示溢出信息,然后停机。然后停机。
3、原码一般不用来做加减运算,而多用来做乘除运算,原码一般不用来做加减运算,而多用来做乘除运算,做加减运算时,多用补码。做加减运算时,多用补码。第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 5.1.25.1.2补码加减法运算补码加减法运算(重点重点)引入补码后,不仅减法能变成加法,而且符号位能同引入补码后,不仅减法能变成加法,而且符号位能同数值位一样参与加运算,这样可以大大简化运算器的结构。数值位一样参与加运算,这样可以大大简化运算器的结构。1 1、补码加减运算规则、补码加减运算规则 参加运算的两个操作数均用补码表示;参加运算的两个操作数均用补码表示;符号位作为数的一部分参加运
4、算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两数直接相加;XXYY补补=X=X补补YY补补 若做减法,则将被减数与减数的机器负数相加;若做减法,则将被减数与减数的机器负数相加;XXYY补补=X=X补补 YY补补 (mod 2,mod 2,一位符号位一位符号位))运算结果用补码表示。运算结果用补码表示。第五章 运算方法和运算器2.2.变补的概念:变补的概念:对所有二进制位对所有二进制位(包括符号位包括符号位)均取反,然后在末尾在加均取反,然后在末尾在加1 1已知已知YY补补,求,求 YY补补=Y=Y补补 变补变补的方法是:的方法是:对对YY补补,包括符号位在内,各位取
5、反,末位加,包括符号位在内,各位取反,末位加1 1。-Y-Y补补被称为被称为YY补补的机器负数,由的机器负数,由YY补补求求-Y-Y补补的过程称为对的过程称为对YY补补变补(求补)变补(求补),补码补码:一个负数由原码表示转换成补码表示时一个负数由原码表示转换成补码表示时 符号位是不变的,仅对数值符号位是不变的,仅对数值位的各位变反,末尾加位的各位变反,末尾加“1”1”。变补变补:则不论这个数的真值是正是负则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加一律连同符号位一起变反,末尾加1 1。YY补补表示的真值如果是正数,则变补后表示的真值如果是正数,则变补后-Y-Y补补所表示真值变为
6、负数,反之亦然所表示真值变为负数,反之亦然 。例如:例如:YY补补=1.01101=1.01101 YY补补=0.10011=0.10011 3 3、溢出判断、溢出判断一般用一般用双符号位进行判断双符号位进行判断:符号位符号位00,00,表示正数表示正数,符号位符号位11,11,表示负数表示负数结果的符号位为结果的符号位为0101时,称为上溢;时,称为上溢;结果的符号位为结果的符号位为1010时,称为下溢时,称为下溢 XX补补 0.11010.1101+Y+Y补补 0.10010.1001X+YX+Y补补 1 1.0110.0110XX补补 00.110100.1101+Y+Y补补 00.10
7、0100.1001X+YX+Y补补 0 01 1.0110.0110第五章 运算方法和运算器例例1:1:X=0.0101 Y=-0.1001 X=0.0101 Y=-0.1001 求求X XY=?Y=?解:解:XX补补=00.0101 Y=00.0101 Y补补=11.0111 -Y=11.0111 -Y补补=00.1001 =00.1001 两符号位相同,无溢出两符号位相同,无溢出 XX补补 00.010100.0101+Y+Y补补 11.011111.0111X+YX+Y补补 1111.1100.1100XX补补 00.010100.0101+-Y+-Y补补 00.100100.1001X
8、-YX-Y补补 0000.1110.1110X+Y=-0.0100X+Y=-0.0100X-Y=+0.1110X-Y=+0.1110第五章 运算方法和运算器例例2:2:X=0.1011 Y=0.1001 X=0.1011 Y=0.1001 求求X XY=?Y=?解:解:XX补补=00.1011 Y=00.1011 Y补补=00.1001 -Y=00.1001 -Y补补=11.0111 =11.0111 两符号位相异,正溢出两符号位相异,正溢出第一符号位为正确符号第一符号位为正确符号 XX补补 00.101100.1011+Y+Y补补 00.100100.1001X+YX+Y补补 0101.01
9、00.0100XX补补 00.101100.1011+-Y+-Y补补 11.011111.0111X-YX-Y补补 100100.0010.0010X+Y=X+Y=溢出溢出X-Y=+0.0010X-Y=+0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器例例3:3:X=-0.1011 Y=-0.1001 X=-0.1011 Y=-0.1001 求求X XY=?Y=?解:解:XX补补=11.0101 Y=11.0101 Y补补=11.0111 -Y=11.0111 -Y补补=00.1001 =00.1001 两符号位相异,负溢出两符号位相异,负溢出第一符号位为正确符
10、号第一符号位为正确符号 XX补补 11.0101 11.0101+Y+Y补补 11.011111.0111X+YX+Y补补 1 11010.1100.1100XX补补 11.010111.0101+-Y+-Y补补 00.100100.1001X-YX-Y补补 1111.1110.1110X+Y=X+Y=溢出溢出X-Y=-0.0010X-Y=-0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器总结:总结:1.1.用模用模4 4补码进行加法运算,结果的两符号位补码进行加法运算,结果的两符号位 相异时,表示溢出;相异时,表示溢出;0101正溢出、正溢出、10 10 负溢
11、出;负溢出;相同时,表示不溢出相同时,表示不溢出2.2.模模4 4补码相加的结果,不论溢出与否,补码相加的结果,不论溢出与否,第一符号位第一符号位始终指示正确的符号始终指示正确的符号建议:以模建议:以模4 4补码做习题补码做习题!第五章 运算方法和运算器练习:练习:求求X XY=?Y=?1.X=0.1001 Y=-0.11001.X=0.1001 Y=-0.1100 X+Y=-0.0011 X-Y X+Y=-0.0011 X-Y 溢出溢出2.X=-0.0110 Y=0.11012.X=-0.0110 Y=0.1101 X+Y=0.0111 X-Y X+Y=0.0111 X-Y 溢出溢出3.X=
12、-0.1010 Y=-0.10013.X=-0.1010 Y=-0.1001 X+Y X+Y 溢出溢出 X-Y=-0.0001X-Y=-0.0001 第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 1 1、反码加减运算规则、反码加减运算规则 参加运算的两个操作数均用反码表示;参加运算的两个操作数均用反码表示;符号位作为数的一部分参加运算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两数直接相加;X反反+Y反反=X+Y反反 若做减法,则将被减数与连同符号位一起变反后的减数相加;若做减法,则将被减数与连同符号位一起变反后的减数相加;X反反+-Y反反=X-Y反反
13、 运算时如果符号位产生进位运算时如果符号位产生进位,则在末位加则在末位加1,1,成为循环进位成为循环进位;运算结果用补码表示。运算结果用补码表示。对于补码:对于补码:XX补补 00.1101 00.1101+Y+Y补补 11.111011.1110X+YX+Y补补 100100.1011.1011去掉正确去掉正确第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 2 2、说明:说明:反码加法,规则同补码加法,但反码加法,规则同补码加法,但若符号位有进位若符号位有进位,需将此进位加到末位需将此进位加到末位循环进位循环进位 由由YY反反如何求如何求-Y-Y反反?对对YY反反,包括符号位,
14、各位求反。,包括符号位,各位求反。第五章 运算方法和运算器例例1 1:X=0.1101 Y=-0.0010 X=0.1101 Y=-0.0010 用反码规则用反码规则求求X XY=Y=?解解:XX反反00.1101 Y00.1101 Y反反11.1101 -Y11.1101 -Y反反00.001000.0010XX反反 00.1101 00.1101+Y+Y反反 11.110111.1101X+YX+Y反反 1 10000.1010.10101 10000.1011.1011XX反反 00.1101 00.1101+-Y+-Y反反 00.001000.0010X-YX-Y反反 0000.111
15、1.1111X+Y=0.1011X+Y=0.1011X-Y=0.1111X-Y=0.1111第五章 运算方法和运算器例例2 2:X=0.1011 Y=-0.0101 X=0.1011 Y=-0.0101 用反码规则求用反码规则求X XY=Y=?解解:XX反反00.1011 Y00.1011 Y反反11.1010 -Y11.1010 -Y反反00.010100.0101XX反反 00.1011 00.1011+Y+Y反反 11.101011.1010X+YX+Y反反 1 10000.0101.01011 10000.0110.0110XX反反 00.1011 00.1011+-Y+-Y反反 00
16、.010100.0101X-YX-Y反反 0101.0000.0000X+Y=0.0110X+Y=0.0110X-Y=X-Y=溢出溢出第五章 运算方法和运算器练习:练习:1 1、X=-0.1100 Y=-0.0010X=-0.1100 Y=-0.0010 用反码规则求用反码规则求X XY=Y=?解解:XX反反11.0011 Y11.0011 Y反反11.1101-Y11.1101-Y反反00.001000.0010XX反反 11.0011 11.0011+Y+Y反反 11.110111.11011 11111.0001.0001XX反反 11.0011 11.0011+-Y+-Y反反 00.0
17、01000.0010X-YX-Y反反 1111.0101.0101X+Y=-0.1110X+Y=-0.1110X-Y=-0.1010X-Y=-0.1010X+YX+Y反反 1 11111.0000.0000第五章 运算方法和运算器练习:练习:2 2、X=-0.1101 Y=0.0110 X=-0.1101 Y=0.0110 用反码规则求用反码规则求X XY=Y=?解解:XX反反11.0010 Y11.0010 Y反反00.0110-Y00.0110-Y反反11.100111.1001XX反反 11.0010 11.0010+Y+Y反反 00.011000.0110XX反反 11.0010 11
18、.0010+-Y+-Y反反 11.100111.1001X-YX-Y反反 1 11010.1011.1011X+Y=-0.0111X+Y=-0.0111X-Y=X-Y=溢出溢出X+YX+Y反反 1111.1000.1000第五章 运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。
19、(结果为正)。例例1 1:设:设:X=1011B=11DX=1011B=11D,Y=111B=7D Y=111B=7D 则:则:XX补补=0,1011=0,1011,YY补补=0,0111=0,0111 有:有:0,1 0 1 1 0,1 0 1 1 +0,0 1 1 1+0,0 1 1 1 1,0 0 1 0 1,0 0 1 0 得出结果:得出结果:X+YX+Y补补=1,0010=1,0010,X+Y=-1110B=-14D X+Y=-1110B=-14D 两正数相加结果为两正数相加结果为-14D-14D,显然是错误的。,显然是错误的。第五章 运算方法和运算器5.2 5.2 补码的溢出判断与
20、检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)(结果为正)。例例2 2:设:设:X=-1011B=-11DX=-1011B=-11D,Y=-111B=-7D Y=-111B=-7D 则:则:XX补补=1,0101 Y=1,0101 Y补补=1,1001=1,1001 有:有:1,0 1 0 1 1,0 1 0 1 +1,1
21、0 0 1+1,1 0 0 1 0,1 1 1 0 0,1 1 1 0 得出结果:得出结果:X+YX+Y补补=0,1110=0,1110,X+Y=1110B=14D X+Y=1110B=14D 两负数相加结果为两负数相加结果为14D14D,显然也是错误的。,显然也是错误的。原因:原因:在于两数相加之和的数值已在于两数相加之和的数值已超过了超过了机器允许的表示范围。机器允许的表示范围。F字长为字长为n+1n+1位位的的定点整数定点整数(其中一位为符号位),采用(其中一位为符号位),采用补码补码表示:表示:当运算结果大于当运算结果大于2 2n n-1-1 或小于或小于-2-2n n时,就产生溢出。
22、时,就产生溢出。F设参加运算的两数为设参加运算的两数为X X、Y Y,做加法运算。,做加法运算。若若X X、Y Y异号,不会溢出。异号,不会溢出。若若X X、Y Y同号,运算结果为正且大于所能表示的最大正数或运算结果为同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数负且小于所能表示的最小负数 (绝对值最大的负数)时,产生溢出。(绝对值最大的负数)时,产生溢出。F溢出分为溢出分为2 2种:种:正溢正溢和和负溢负溢。第五章 运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的
23、情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。第五章 运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用一个符号位判断采用一个符号位判断采用一个符号位采用一个符号位加法运算加法运算时检测溢出的方法:时检测溢出的方法:两正数相加,结果为负表明产生正溢;即当两正数相加,结果为负表明产生正溢;即当Xs=Ys=0Xs=Ys=0,Ss=1Ss=
24、1时,产生正溢。时,产生正溢。两负数相加,结果为正表明产生负溢。即当两负数相加,结果为正表明产生负溢。即当Xs=Ys=1Xs=Ys=1,Ss=0Ss=0时,产生负溢。时,产生负溢。因此可得出加法运算时因此可得出加法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=XsYsSs+XsYsSs=XsYsSs+XsYsSs采用一个符号位采用一个符号位减法运算减法运算时检测溢出的方法:时检测溢出的方法:两数相减,只有两数相减,只有X,YX,Y异号时才可能溢出;异号时才可能溢出;因此可得出减法运算时因此可得出减法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=XsYsSs+XsYsSs=XsYsS
25、s+XsYsSs第五章 运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用进位位判断采用进位位判断两正数相加,当最高有效位产生进位(两正数相加,当最高有效位产生进位(C C1 1=1=1)而符号位不产生进位)而符号位不产生进位(Cs=0Cs=0)时,发生正溢;)时,发生正溢;两负数相加,当最高有效位没有进位(两负数相加,当最高有效位没有进位(C C1 1=0=0)而符号位产生进位)而符号位产生进位(Cs=1Cs=1)时,发生负溢。)时,发生负溢。溢出的判断条件为:溢出的判断条件为:溢出溢出=CsC=CsC1 1+CsC+Cs
展开阅读全文