电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第5章:运算方法与运算器VIP免费

第5章:运算方法与运算器_第1页
1/37
第5章:运算方法与运算器_第2页
2/37
第5章:运算方法与运算器_第3页
3/37
通过前面的学习,我们已经知道了数据在计算机中是如何表示,那么它们是怎么参加运算的呢?或者说运算器是怎样工作的呢?要明白这个问题就是我们在这一章要学习的算术、逻辑运算的方法。第5章运算方法和运算器§1移位运算和舍入操作一、移位运算1、意义移位运算是计算机中最基本、最常见的运算操作之一。任何计算机都含有移位指令。移位操作有两种:(1)逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量变化。(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补码的移位:除符号位外,左移补0,右移补11212123、练习设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.101101212121212121212二、舍入操作在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差。为减少误差,就要进行舍入操作。(1)恒舍(切断):多余的部分全部舍去(2)冯·诺依曼舍入法:末位恒置1(3)0舍1入法:(4)ROM舍入法(查表法)§2定点数加减法所谓四则运算就是指加,减,乘,除四种运算。二进制数的四则运算在原理上和十进制数的四则运算法则是一样,只要我们记住“逢二进一”就会发现二进制数的四则运算甚至更简单。一、原码加法:设X=+10101,Y=-11010,试计算X+Y用原码进行这种运算要分如下几个步骤(1)比较两个数的绝对值的大小(2)绝对值大的数的绝对值减去绝对值小的数的绝对值。(3)将结果赋予绝对值较大的那个数的符号。对于上题:很显然>,所以先作-即11010-10101最后将Y的符号赋予结果的符号00101因此X+Y=-00101由上述运算看来,用原码做加法实在不是一件轻松的事。能不能有更好的办法呢?yxxy二、补码加法:由前面所学的知识可知,[X+Y]补=[X]补+[Y]补下面我们就根据这个公式来计算上述例子[X+Y]补=[X]补+[Y]补=010101+100110=111011X+Y==-00101看来采用补码连同符号位一起运算,比用原码运算高明多了,但不要高兴得太早,我们再看下面例子。例1:设机器得字长为8位X=+1000101,Y=+1100111,试计算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)。类似的,当两个负相加,如果和正,也同样属于溢出现象。而两个异号数相加是不可能产生溢出现象的。我们再看一个例子。例2:设机器字长为8位,X=-1000011,Y=-0100001,求X+Y解:[X]补=10111101+[Y]补=11011111[X]补+[Y]补=110011100即[X+Y]补=[X]补+[Y]补=10011100求得X+Y=-1100100结果正确从上面两个例子来看,一会儿是溢出,一会儿又是对,同学们是不是会问:我们怎么知道哪一种是溢出,哪一种又不是?有没有办法一下子就能判断出来呢?回答是肯定的。那就是采用多个符...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部