第5章:运算方法与运算器

第5章:运算方法与运算器

ID:20117187

大小:275.50 KB

页数:37页

时间:2018-10-09

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

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

1、通过前面的学习,我们已经知道了数据在计算机中是如何表示,那么它们是怎么参加运算的呢?或者说运算器是怎样工作的呢?要明白这个问题就是我们在这一章要学习的算术、逻辑运算的方法。第5章运算方法和运算器§1移位运算和舍入操作一、移位运算1、意义移位运算是计算机中最基本、最常见的运算操作之一。任何计算机都含有移位指令。移位操作有两种:(1)逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量变化。(2)算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化。在此仅讨论算术移位:当机器字长固定,左、右移位时,出现空位怎么办?2、算术移位的规则大前提是:移

2、位后,符号位保持不变。(1)正数:正数的符号位为0,且[x]原=[x]反=[x]补,故进行算术移位时,出现的空位均补0.例如:[x]原=0.1001,2[x]原=0.0010;[x]反=0.0011,[x]反=0.0001;[x]补=0.10012[x]补=0.0010;(2)负数:原码的移位:除符号位外,原码的数值部分与真值相同,故移位后都补0.[x]原=1,01112[x]原=1,1110[x]原=1,0011反码的移位:除符号位外,反码的数值部分与原码相反,故移位后都补1.[x]反=1,01112[x]反=1,1111[x]反=1,1011补码的移位:除符号位外,左移补

3、0,右移补13、练习设X=-0.1001010,求:(1)X的原码左移2位、右移2位各是多少?(2)X的反码左移2位、右移2位各是多少?(3)X的补码左移2位、右移2位各是多少?思考:2[x]补=[2x]补成立吗?[x]补=[x]补成立吗?解答:当x>=0时,在不溢出的情况下,上述二式成立;当x<0时,在不溢出的情况下,2[x]补=[2x]补成立,而[x]补=[x]补不成立。如:x=-0.0001,字长5位。x=-0.0000[x]补=1.1111,[x]补=1.1111[x]补=0.0000又如:x=-0.10101,字长6位。[x]补=1.10101[x]补=1.1011

4、0二、舍入操作在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差。为减少误差,就要进行舍入操作。(1)恒舍(切断):多余的部分全部舍去(2)冯·诺依曼舍入法:末位恒置1(3)0舍1入法:(4)ROM舍入法(查表法)§2定点数加减法所谓四则运算就是指加,减,乘,除四种运算。二进制数的四则运算在原理上和十进制数的四则运算法则是一样,只要我们记住“逢二进一”就会发现二进制数的四则运算甚至更简单。一、原码加法:设X=+10101,Y=-11010,试计算X+Y用原码进行这种运算要分如下几个步骤(1)比较两个数的绝对值的大小(2)绝对值大的数的绝对值减去绝对值小的数的绝对值。

5、(3)将结果赋予绝对值较大的那个数的符号。对于上题:很显然>,所以先作-即11010-10101最后将Y的符号赋予结果的符号00101因此X+Y=-00101由上述运算看来,用原码做加法实在不是一件轻松的事。能不能有更好的办法呢?二、补码加法:由前面所学的知识可知,[X+Y]补=[X]补+[Y]补下面我们就根据这个公式来计算上述例子[X+Y]补=[X]补+[Y]补=010101+100110=111011X+Y==-00101看来采用补码连同符号位一起运算,比用原码运算高明多了,但不要高兴得太早,我们再看下面例子。例1:设机器得字长为8位X=+1000101,Y=+11001

6、11,试计算X+Y解:[Y]补=01100111+[X]补=01000101[X]补+[Y]补=10101100即[X+Y]补=[X]补+[Y]补=10101100求得X+Y=-1010100明明两个正数相加,结果却为负的。很显然,该结果是错误,那么错在哪里呢?我们来分析一下:由该例可知真值X和Y所表示的十进制数分别为(69)10和(103)10,其和为(172)10,该数用二进制数为+10101100,在机器中表示这个数需要9位。而现在机器的字长为8位,无法表示,我们把这种现象称为“溢出”(overflow)。类似的,当两个负相加,如果和正,也同样属于溢出现象。而两个异号数

7、相加是不可能产生溢出现象的。我们再看一个例子。例2:设机器字长为8位,X=-1000011,Y=-0100001,求X+Y解:[X]补=10111101+[Y]补=11011111[X]补+[Y]补=110011100即[X+Y]补=[X]补+[Y]补=10011100求得X+Y=-1100100结果正确从上面两个例子来看,一会儿是溢出,一会儿又是对,同学们是不是会问:我们怎么知道哪一种是溢出,哪一种又不是?有没有办法一下子就能判断出来呢?回答是肯定的。那就是采用多个符号位。我们把符号位用多位表示所得机

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

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

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