运算方法与运算器1

运算方法与运算器1

ID:27727528

大小:1.44 MB

页数:80页

时间:2018-12-04

运算方法与运算器1_第1页
运算方法与运算器1_第2页
运算方法与运算器1_第3页
运算方法与运算器1_第4页
运算方法与运算器1_第5页
资源描述:

《运算方法与运算器1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章运算方法与运算器2.2定点加、减运算2.2.1定点补码加、减法与溢出2.2.2基本的二进制加、减法器2.2.1定点补码加、减法与溢出在计算机中,常将数值转换成补码后再进行加减运算。其优点是,可将减法运算转化为加法运算,这样可以简化机器内部硬件电路的结构。补码运算的特点是:符号位和数值位一起参加运算。补码加减运算公式(1)补码的加法运算其公式为:[x+y]补=[x]补+[y]补(2)补码的减法运算其公式为:[x-y]补=[x+(-y)]补=[x]补+[-y]补=[x]补-[y]补[x+y]补=[x]补+[y]补(mod2)现分4种情况来证明。假设采用定点小数表示,因此证明的

2、先决条件是:︱x︱﹤1;︱y︱﹤1;︱x+y︱﹤1。①x﹥0,y﹥0,则x+y﹥0。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:[x]补+[y]补=x+y=[x+y]补(mod2)(1)补码加法的公式②x﹥0,y﹤0,则x+y>0或x+y<0相加的两数一个为正,一个为负,因此相加结果有正、负两种可能。根据补码定义:∵[x]补=x,[y]补=2+y∴[x]补+[y]补=x+2+y=2+(x+y)当x+y>0时,2+(x+y)>2,进位2必丢失,又因(x+y)>0,故[x]补+[y]补=x+y=[x+y]补(mod2)当x+y<0时,2+(x+y)<2,又

3、因(x+y)<0,故[x]补+[y]补=2+(x+y)=[x+y]补(mod2)③x<0,y>0,则x+y>0或x+y<0。这种情况和第2种情况一样,把x和y的位置对调即得证。④x<0,y<0,则x+y<0。相加两数都是负数,则其和也一定是负数。∵[x]补=2+x,[y]补=2+y∴[x]补+[y]补=2+x+2+y=2+(2+x+y)上式右边分为”2”和(2+x+y)两部分。由于(x+y)是负数,且其绝对值又小于1,那么(2+x+y)就一定是小于2而大于1的数,进位”2”必丢失。又因(x+y)<0,所以[x]补+[y]补=(2+x+y)=2+(x+y)=[x+y]补[例]x=

4、+0.1011,y=-0.0101,求x+y。[解:][x]补=0.1011,[y]补=1.1011[x]补0.1011+[y]补1.1011[x+y]补10.0110所以x+y=0.0110补码的减法运算公式为:[x-y]补=[x]补-[y]补=[x]补+[-y]补只要证明[-y]补=-[y]补,上式即得证。证明方法:利用补码加法公式,[0]补=0[y]补+[-y]补=[y+(-y)]补=[y-y]补=[0]补=0故[-y]补=-[y]补对于定点小数和定点整数都适用[-y]补的含义:是将[y]补的各位(包括符号位)全部取反,末位加“1”。(2)补码的减法运算从[y]补求[-y

5、]补的法则是:对[y]补各位(包括符号位)求反且最末位加1,即可得到[-y]补。写成运算表达式,则为[-y]补=﹁[y]补+2-n其中:符号﹁表示对[y]补作包括符号位在内的求反操作,2-n表示最末位的1。[例1]已知x1=-0.1110,x2=+0.1101,求:[x1]补,[-x1]补,[x2]补,[-x2]补。[解:][x1]补=1.0010[-x1]补=﹁[x1]补+2-4=0.1101+0.0001=0.1110[x2]补=0.1101[-x2]补=﹁[x2]补+2-4=1.0010+0.0001=1.0011[例2]x=+0.1101,y=+0.0110,求x-y。

6、[解:][x]补=0.1101,[y]补=0.0110,[-y]补=1.1010[x]补0.1101+[-y]补1.1010[x-y]补10.0111所以x-y=+0.0111参加运算的数都用补码表示。数据的符号与数据一样参加运算。求差时将减数求补,用求和代替求差。运算结果为补码。如果符号位为0,表明运算结果为正;如果符号位为1,则表明运算结果为负。符号位的进位为模值,应该丢掉。⑶补码加减法运算规则3.溢出判断法在机器定点小数中,数的表示范围为:

7、x

8、<1。在运算过程中如出现大于1的现象,称为“溢出”。在定点机中,正常情况下溢出是不允许的。机器定点小数表示[例]x=+0.101

9、1,y=+0.1001,求x+y。[解:][x]补=0.1011[y]补=0.1001[x]补0.1011+[y]补0.1001[x+y]补1.0100两个正数相加的结果成为负数,这显然是错误的。[例]x=-0.1101,y=-0.1011,求x+y。[解:][x]补=1.0011[y]补=1.0101[x]补1.0011+[y]补1.0101[x+y]补0.1000两个负数相加的结果成为正数,这同样是错误的。发生错误的原因:是因为运算结果产生了溢出。两个正数相加,结果大于机器所能表示的最大

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。