版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4,数据运算 (Operations On Data ),列出三大类数据运算:逻辑、移位、算术 在位模式上进行一元和二元逻辑运算 区分逻辑移位运算和算术移位运算 在位模式上进行逻辑移位运算 对二进制补码形式存储的整数进行算术移位运算 对二进制补码形式存储的整数进行加减法运算 对符号加绝对值形式存储的整数进行加减法运算 对浮点格式存储的实数进行加减法运算 理解逻辑和算术运算的一些应用,如置位、复位等,目标,通过本章的学习,同学们应该能够:,4-1 逻辑运算 LOGIC OPERATIONS,逻辑运算是对因果关系进行分析的一种运算。 逻辑运算结果并不表示数值大小,而是表示一种逻辑概念,通常用来测试
2、真假值,若成立用真或1表示,不成立用假或0表示。 可以在位层次和模式层次上定义逻辑运算。 模式层次上的逻辑运算是具有相同类型的位层次上的n个逻辑运算,n是模式中的位的数目.,位层次上的逻辑运算 Logic operations at bit level,可以应用布尔代数中定义的运算去操纵二进制位. 为纪念乔治.布尔(George Boole)而命名的布尔代数属于逻辑的特殊数学领域. 如果定义1个位作为逻辑值,则可对它进行逻辑运算. 逻辑运算接收1或2个位来生成1个位。若逻辑运算作用在1或2个输入位上,就叫一元或二元运算。 四种被用来操纵二进制位的位层次上的运算: 非NOT, 与AND, 或OR
3、, 异或XOR.,非NOT,非运算实现逻辑否定,即进行求反运算。 NOT 运算符是一元操作符: 它只有一个输入. 输出位是输入位的相反.,与运算又称逻辑乘,用符号.或表示 AND 运算符是二元运算符:有两个输入 如果输入都是1,则输出是1;其他情况下,输出都是0,与AND,对于 x = 0 or 1: x AND 0 0 、 0 AND x 0,i,或OR,或运算又称逻辑加,用符号+或表示 OR运算符是二元运算符:有两个输入. 如果输入都是0,则输出为0;其他情况下,输出都是1.,对于 x = 0 or 1 : x OR 1 1 、 1 OR x 1,i,异或运算用符号表示,XOR也是二元运算
4、符。 与OR的一点不同,如果输入都是1,则输出为0。 如果输入相同,则输出为0,否则为1。,异或XOR,For x = 0 or 1 1 XOR x NOT x x XOR 1 NOT x,i,Example 4.1,英语中 “or” ,有时表示“或”,有时表示“异或”。,“or”表示“或” “I would like to have a car or a house” I would like to have a car, a house or both (我希望有一辆车,一栋房子或者二者兼而有之). “or”表示“异或” “Today is either Monday or Tuesday
5、” Today is either Monday or Tuesday, but it cannot be both (今天不是星期一就是星期二,但不能两个都是).,Example 4.2,XOR运算符其实不是新的运算符,能用其他三个运算符来模拟. 下面两个表达式是等价的,x XOR y x AND (NOT y) OR (NOT x) AND y,如果给出两个表达式的真值表,等价就可以得到证明.,模式层次上的逻辑运算 Logic operations at pattern level,4个运算符 (NOT,AND,OR,XOR)可以被应用到n位模式. 对NOT来说,就是把每个运算符应用于每个
6、位. 对另3个运算符,就是把每个运算符应用于相应的位对 . 图4.2 显示了带输入和输出模式的四个运算符.,Figure 4.2 应用于位模式的逻辑运算符,Example 4.3,用NOT运算符来计算位模式10011000.,解: 注意:NOT运算符把每个0变成1,把每个1变成0.,Example 4.4,用AND运算符来计算位模式 10011000 和 00101010.,解:注意: 只有输入中相应的位都为1,输出的位才为1.,Example 4.5,对位模式10011001 和 00101110应用OR运算.,解:注意: 只有输入中相应的位都为0,输出中的位才为0.,Example 4.6
7、,使用XOR运算符来计算位模式10011001和00101110.,解:输入相同,则输出为0 P53错 注意:将该例的输出与Example 4.5进行比较, 区别在于该例中输入位都为1时,输出为 0,Applications,四种逻辑运算可用于修改位模式.,求反:NOT的作用就是对整个模式求反. 复位:AND把一个位模式的指定位 置0. 置位:OR把一个位模式的指定位置1. 反转:XOR把一个位模式的指定位反转. 位模式可以与另一个位模式进行与、或、异或运算而被修改,另一个位模式就是所谓的掩码。 掩码用于修改另一个二进制位模式。,Applications,求反 (NOT): NOT的作用就是对
8、整个模式求反,四种逻辑运算可用于修改位模式.,使指定的位复位 (AND) AND运算符特性:输入有一个0,则输出是0. 把一个位模式的指定位复位(置0)。 Input2称为掩码,掩码中的0位对Input1中相应的位进行复位。 复位规则: 目标位模式中需要置0的位,掩码相应位设为0; 目标位模式中需要保持不变的位,掩码相应位设为1,Example 4.7,使用掩码复位模式的最左5位。 用模式10100110测试掩码.,解: 掩码是00000111,应用掩码的结果是:,Example,使用8个水泵来给城市供水。 水泵的开或关可以用8位二进制模式来描述。 现在假设将5号水泵关闭,假设关为0。 什么样
9、的运算和掩码可以描述这种情况?,解: 原状态是:0 1 1 1 1 0 0 1 掩码是:1 1 1 0 1 1 1 1 应用掩码的结果是:0 1 1 0 1 0 0 1 AND复位(置0),对指定的位置位 (OR) 或运算的一个应用就是把位模式的指定位置位(置1) OR运算符特性:输入有一个1,则输出是1. 掩码中的1位对第一个输入中的相应位进行置位, 掩码中的0位使第一个输入中相应的位保持不变。 创建置位掩码的规则: 目标位模式中需要置1的位,掩码相应位设为1 目标位模式中需要保持不变的位,掩码相应位设为0,Example 4.8,用掩码来把一个位模式的最左5位置位. 用模式10100110
10、检验掩码.,解: 此掩码为11111000,应用此掩码的结果为:,Example,解: 原状态是: 0 1 1 1 1 0 0 1 掩码是: 0 0 0 0 0 1 0 0 应用掩码的结果是: 0 1 1 1 1 1 0 1 OR置位(置1),一个电厂使用8个水泵来给城市供水。 水泵的开或关可以用8位二进制模式来描述。 现在假设将3号水泵打开,假设关为0。 什么样的运算和掩码可以描述这种情况?,使指定的位反转 (XOR) 异或运算符的一个应用就是使指定的位反转 即把指定位由0变成1,由1变成0. 掩码中的1位对第一个输入中相应的位进行反转。 掩码中的0位使第一个输入中相应的位保持不变。 创建反
11、转掩码的规则: 目标位模式中需要反转的位,掩码相应位设为1 目标位模式中需要保持不变的位,掩码相应位设为0 注意NOT与NOR的区别,Example 4.9,用掩码来反转一个模式的最左边5位. 用模式10100110检验掩码.,解:掩码为11111000. 运用掩码后的结果为:,4-2 移位运算 SHIFT OPERATIONS,移动模式中的位,改变位的位置。 它们能向左或向右移动位。 可以把移位运算分成两大类 : 逻辑移位运算 算术移位运算,逻辑移位运算 Logical shift operations,逻辑移位运算应用于不带符号位的数的模式。 原因是这些移位运算可能会改变数的符号, 此符号
12、是由模式中最左位定义的。 区分两类逻辑移位运算,,逻辑移位 循环移位(旋转),Figure 4.3 逻辑移位运算,逻辑右移运算:把每一位向右移动一个位置。 在n位模式中,最右位被丢弃,最左位填0。 逻辑左移运算:把每一位向左移动一个位置。 在n位模式中,最左位被丢弃,最右位填0。,逻辑移位,Example 4.10,对位模式10011000使用逻辑左移运算。,解: 最左位被丢弃,0作为最右位被插入。,Discarded,Added,Figure 4.4 循环移位运算,循环移位(旋转),循环移位运算:没有位丢弃或增加 循环右移(右旋转):每一位向右移动一个位置,最右位被回环,成为最左位。,Exa
13、mple 4.11,对位模式10011000使用循环左移运算。,解: 最左位被回环,成为最右位。,算术移位运算 Arithmetic shift operations,算术移位运算假定位模式是用二进制补码格式表示的带符号位的整数。这些运算不应改变符号位。 算术右移用来对整数除以2:保留符号位,同时把符号位复制到相邻的右边位。 算术左移用来对整数乘以2:丢弃符号位,右插0。 (判断符号位:若符号不变,合法。否则溢出,非法),Figure 4.5 算术移位运算,Example 4.12,对位模式10011001使用算术右移, 模式是二进制补码格式的整数,解: 最左位被保留,被复制到相邻的右边的位中
14、。,原始数是-103,新的数是-52, 它是-103被除以2并取整的结果。,Example 4.13,对位模式11011001使用算术左移, 模式是二进制补码格式的整数,解: 最左位被丢弃,0作为最右位被插入。,原始数是-39,新数是-78,原始数被乘以2。 因为没有下溢的发生,所以运算合法。,Example 4.14,对位模式01111111使用算术左移, 模式是二进制补码格式的整数。,解:最左位被丢弃,0作为最右位被插入。,原始数是127,新的数是2。上溢发生,结果非法。 期望是127 2 = 254,该数不能用8位模式表示。 左移判断符号位,右移符号位保留,Example 4.15,逻辑
15、运算和逻辑移位运算提供了操纵位模式的工具。 假设有一个模式,在判断过程中使用此模式的第三位(从右起),需要知道这特殊的位是0或1。,我们可以测试结果: 如果结果是无符号的整数1,那么目标位就是1; 如果结果是无符号的整数0,那么目标位就是0。,4-3 算术运算 ARITHMETIC OPERATIONS,算术运算包括加、减、乘、除等, 适用于整数和浮点数。,整数的算术运算 Arithmetic operations on integers,类似加、减、乘、除等的算术运算均适用于整数。 虽然整数的乘法(除法)能通过重复的加法(减法)来实现,但程序是低效的。 对于乘法和除法有更高效的程序,如Boo
16、th程序 本课程只讨论整数的加法和减法。,二进制补码整数的加减法 Twos complement integers,整数通常以二进制补码形式存储。 模的概念可以帮助理解补码:以12为模的系统中,加9和减3效果一样,凡是减3运算,都可以用加9来代替。对“模”而言,9和3互为补数。 思考: 把1个整数加到它的补码上的结果是什么? 对于1个整数B , B + ( B + 1) ?,二进制补码整数的加减法 Twos complement integers,补码表示法的优点:加法和减法之间没有区别。 当遇到减法运算时,计算机只简单地把它转变为加法,对第二个数进行二进制的补码运算。,A B A + (B
17、+ 1),补码:只需要讨论加法 列列相加,若有进位,就加到下一列,舍最后一列进位 每一列中,如果没有进位,就两位相加。 如果有从前一列来的进位,就三位相加。 下表显示了进位(Carry)、和(Sum)。,Figure 4.6 二进制补码格式表示的整数加法和减法,Example 4.16,以二进制补码格式存储两个整数A和B,A+B?,解:运算是相加,A被加到B上,结果存储在R中。,A = (00010001)2 B = (00010110)2,用十进制检查结果: (+17) + (+22) = (+39).,Example 4.17,以二进制补码格式存储两个整数A和B,A+B?,解:运算是相加,
18、A被加到B上,结果存储在R中。,A = (00011000)2 B = (11101111)2,用十进制检查结果:(+24) + (-17) = (+7)。,Example 4.18,以二进制补码格式存储两个整数A和B,A-B?,解:相减,A被加到(B + 1)上,结果存储在R中。,A = (00011000)2 B = (11101111)2,(+24) - (-17) = (+41),Example 4.19,以二进制补码格式存储两个整数A和B,A-B?,解:相减,A被加到(B+1)上,结果存储在R中。,A = (11011101)2 B = (00010100)2,(35) (+20)
19、= (55).,Example 4.20,以二进制补码格式存储两个整数A和B,如何A+B?,解:运算是相加,A被加到B上,结果存储在R中。,A = (01111111)2 B = (00000011)2,期望的结果是 127 + 3 = 130, 但答案是126。 由于上溢,+130 不是128 +127之间的范围。 P58错 ,最右边第一位没有进位,课堂测验,以二进制补码格式存储两个整数A和B,,解: 1、A+B=00010011 负+负=正 , 发生溢出 2、A-B=A+(B+1)=00010001 负+正 不会溢出 17 3、B-A=B+(A+1)=11101111 负+正 不会溢出 -
20、17 验证A=-110,B=-127,A = (10010010)2 B = (10000001)2,求A+B? A-B? B-A?,当进行算术运算时, 要记住:每个数字和结果应该在分配的二进制位的定义范围之内。,i,1、观察法 正+负,负+正不会发生溢出 正+正(为负,溢出),负+负(为正,溢出),判断溢出的方法,判断溢出的方法,2、双高位判别法 最高位和次高位的进位是否相同? 相同,不溢出;不同,溢出 Cs表示符号位进位情况: 若符号位发生进位,则Cs=1,否则Cs=0 Cp表示最高位数值位进位情况: 若最高数值位发生进位,则Cp=1,否则Cp=0,判断溢出的方法-双高位判别法,当两个正数
21、补码相加时,若数值部分之和大于2n-1,则数值位必有进位,Cp=1;而符号位无进位, Cs=0。 则Cs Cp的状态为01,溢出。 当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和一定小于2n-1,必有Cp=0;而符号位却有进位, Cs=1。 则Cs Cp的状态为10,溢出。 Cs Cp的状态相同,即“00”或“11”时,不溢出。,符号加绝对值整数的加减法(原码加减) sign-and-magnitude integers,用符号加绝对值表示的整数加减法看起来非常复杂。 有4种不同的符号组合(正正,正负,负正,负负) 对于整数加减法要考虑8种不同情况: 正正,正负,负
22、正,负负 正正,正负,负正,负负 但是,如果先检查运算符号,则可以简化这些情况 如图4-7所示。,Figure 4.7 符号加绝对值格式的整数的加法和减法,符号加绝对值格式的整数的加法和减法计算步骤: 1、判断加法减法运算, 若相加,则B的符号位Bs不变 若相减,则B的符号位Bs取反,即Bs 2、判断As和Bs的符号是否相同, 若相同As XOR Bs0,则RMAMBM,RsAs (符号相同,判断RM是否上溢) 若不同As XOR Bs1,则判断AM和BM的大小 若AMBM,则RsAs, RMAM(BM+ 1) 若AMBM,则RsBs, RMAM(BM+ 1) 最终RM要取补码, RMRM+
23、1,Example 4.21,以符号加绝对值格式存储两整数A和B,如何AB?,解:1. 相加,B的符号位Bs不变 2. AS XOR BS = 0,A和B的符号相同, 则RM = AM + BM,RsAs 符号相同,判断RM是否溢出 没有溢出,所以R 00100111 (+17) + (22) = (39)。,A = (0 0010001)2 B = (0 0010110)2,Example 4.22,以符号加绝对值格式存储两整数A和B,如何AB ?,解:相加,B的符号没有改变 S = AS XOR BS = 1; RM = AM + (BM +1)。 AMBM,则RsBs,最终需要取 RM的
24、二进制补码。 (+17) + ( 22) = (5)。,A = (0 0010001)2 B = (1 0010110)2,Example 4.23,以符号加绝对值格式存储两整数A和B,如何从A中减B?,解:相减, B的符号改变BS = BS S = AS XOR BS = 1, 则RM = AM + (BM +1)。 AMBM,则RsAs,RM 的值就是最终的值。 (81) (22) = (59)。,A = (1 1010001)2 B = (1 0010110)2,书P60错 运算是相减,BS,实数的算术运算 Arithmetic operations on reals,加、减、乘、除的算
25、术运算都能用于浮点数格式存储的实数上。 两实数乘法涉及两个用符号加绝对值表示的整数乘法;两实数除法涉及两个用符号加绝对值表示的整数除法。 本课程只讨论实数的加法和减法。,实数的加减法 Addition and subtraction of reals,以浮点数格式存储的实数加法和减法简化为: 小数点对齐后以符号加绝对值格式(符号和尾数的组合)存储的两整数的加法和减法。 图4-8显示了处理过程。,Figure 4.8 浮点数格式实数的加法和减法,实数的加减法 Addition and subtraction of reals,处理过程: 1、判断A、B是否为0,可直接输出R=A或B 2、如果A-B,需要改变Bs 3、去规范化(尾数隐含的1,增加指数) 4、对齐指数(移位尾数) 如1.11101*24+1.01*22,需要对齐, 去规范化, 0.111101*25+0.101*23 指数对齐,变为5, 0. 111101 *25+0.00101*25 5、符号和尾数的组合相加(符号加绝对值) 6、规范化 1.000111*25 (书P62错),Example 4.24,计算机是如何计算结果的: (+5.75) + (+161.875) = (+167.625).,解:这两个数以浮点数格式存储。 需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年职业技能培训机构发展计划可行性研究报告
- 2025年农业区块链溯源项目可行性研究报告
- 2025年电商快递智慧化服务项目可行性研究报告
- 2025年特色农产品品牌打造可行性研究报告
- 2025年提升企业网络安全防护能力项目可行性研究报告
- 2025年城市垃圾分类与处理系统建设项目可行性研究报告
- 2025年养老服务设施建设项目可行性研究报告
- 2025年智能快递柜招商运营项目可行性研究报告
- 2025年现代农业产业链构建项目可行性研究报告
- 房租土地赠与合同范本
- 雨课堂学堂云在线《中国马克思主义与当代(北京化工大学 )》单元测试考核答案
- 贵州省贵阳市2025-2026学年高三上学期11月质量监测化学试卷(含答案)
- 机场设备维修与保养操作手册
- 动脉穿刺法教案(2025-2026学年)
- 2025年《肌肉骨骼康复学》期末考试复习参考题库(含答案)
- 工程勘察设计收费标准
- 2025年中国工业级小苏打行业市场分析及投资价值评估前景预测报告
- 家具生产工艺流程标准手册
- 消防新队员安全培训课件
- 2025玛纳斯县司法局招聘编制外专职人民调解员人笔试备考题库及答案解析
- 德邦物流系统讲解
评论
0/150
提交评论