- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 机器数的运算方法及运算器
4.1 机器数的加减运算及其实现
4.1.1 原码加法
1.符号相同的两个原码相加:符号相同的两个原码相加,只要两个数的数值相加即可,其符号不变。
例4.1 设X=+10001,Y=+01011,求Z=X+Y
解:
即,Z=+11100。
例4.2 设X=-10001,Y=-01011,求Z=X+Y
2.符号相异的两个原码相加:先比较两数的绝对值大小,用绝对值大的数减去绝对值小的数,结果的符号是绝对值大的数的符号。
【例4.3】设X=+10101,Y=-01010,求Z=X+Y
解:
先比较X与Y的绝对值,本题∣X∣|Y|,所以做减法|X∣-|Y|,
结果是Z=+01011
例4.2 设X=+01010,Y=-10111,求Z=X+Y
解: 先比较X与Y的绝对值,本题∣Y∣|X| ,所以做减法|Y∣-|X|,
结果是Z=-01101
用原码进行符号不同的两个数相加时有以下三步运算:
① 比较两个数的绝对值的大小;
② 绝对值大的数的绝对值减去绝对值小的数的绝对值;
③ 结果赋以绝对值大的那个数的符号。
4.1.2 补码加法
补码运算特点:①补码运算时,不用判断符号位,符号位与数值一块参与运算;
②两数相加之后,进位的最高位超出字长部分自动丢失。
1.定点补码运算性质
性质1 两数之和的补码等于两数补码之和。
[X+Y]补=[X]补+[Y]补
例4.5 设X=+11010,Y=-10101,用补码的加法求Z=X+Y
解:加数和被加数的数值位都是5位,在数值位之前加1位符号位。这样,
[X]补=011010,[Y]补=101011
[X+Y]补= [X]补+[Y]补= 011010+101011=000101
所以,X+Y=+00101。
注意:在运算中,数值位和符号位有进位,本例采用单符号位,以2为模,进位的1就丢掉了。
例4.6 设X=+10101,Y=-11010,用补码加法求Z=X+Y
解:[X]补= 010101,[Y]补=100110
[X+Y]补=[X]补+[Y]补= 010101+100110=111011
所以,X+Y=-00101。
性质2 一个负数的补码的补码就是这个负数的原码。[[X]补]补=[X]原
例4.7 设有两个定点小数 X=-0.10011,Y=-0.11001,求这两个负数补码的补码。
解: [X]原=1.10011 [Y]原=1.11001
[X]补=1.01101 [Y]补=1.00111
[[X]补]补=1.10011=[X]原
[[Y]补]补=1.11001=[Y]原
补码这一性质,计算机中计算结果的补码均可化成该数的原码。
例4.8 设有两个定点小数 X=-0.1101,Y=0.0111,(-1X+Y0),求这两数之和。
解:[X]补=1.0011 [Y]补=0.0111
[X]补+[Y]补=1.0011+0.0111=1.1010
[X+Y]原=[[X]补+[Y]补]补=[1.1010]补=1.0110
所以,X+Y=-0.0110
用真值进行运算:X+Y=-0.1101+0.0111=-0.0110
结果相同。
用补码做加法是数值位连同符号位一起参加运算的。但是在有溢出的情况下,用一般的补码加法就得不到正确的结果,再看下面的例子。
例4.9 设有两个定点小数X=+0.10111,Y=+0.10001,用补码的加法求Z=X+Y
解:[X]补= 0.10111,[Y]补=0.10001
[X+Y]补= [X]补+[Y]补=0.10111+0.10001=1.01000
Z=X+Y=-0.11000
两个大于0.5的正数相加,结果就为负值,结果显然是错误的。
例4.10 设X=-0.10111,Y=-0.10001,用补码的加法求Z=X+Y
解:[X]补=1.01001,[Y]补=1.01111
[X+Y]补= [X]补+[Y]补=1.01001+1.01111=0.11000 Z=X+Y=+0.11000
两个绝对值大于0.5的负数相加,结果为正值,这也是错误的。
它们的和超出了机器数所能表示的最大范围,即产生了溢出,在有溢出的情况下,用一般补码加法就无法得到正确结果。
例4.11 设有两个定点小数X=+0.10111,Y=-0.10001,用补码的加法求Z=X+Y
解:[X]补= 0.10111,[Y]补=1.01111
[X+Y]补= [X]补+[Y]补
=0.10
您可能关注的文档
最近下载
- 广东医科大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 对外经济贸易大学技术经济及管理专业尹建华、邢小强创业管理考博参考书.docx VIP
- 七年级数学上册线段直线射线练习题.doc VIP
- 南京审计大学金审学院《高级财务会计》2022-2023学年第一学期期末试卷.doc VIP
- 媒介素养概论教学课件-第九章 传播媒介.ppt VIP
- 手术室一次性耗材管理规范考试测试卷及答案.docx
- 《黄山市羽毛球俱乐部发展现状、问题及完善对策研究》10000字.docx VIP
- 胸痛三联320排螺旋CT一站式成像技术.pptx VIP
- 胸痛三联三二零排螺旋CT一站式成像技术讲义.ppt VIP
- 计谋大全-3个108计.pdf VIP
原创力文档


文档评论(0)