[正数和负数的加减法]计算机中负数的加减.pdfVIP

[正数和负数的加减法]计算机中负数的加减.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

[正数和负数的加减法]计算机中负数的加减

篇一:计算机中负数的加减

这段时间开始看FOC的程序,开始改一些算法。把一些基础知识

拣起来

第14章计算机中数的表示下一页3.整数的加减运算请点评我

们已经了解了计算机中正整数如何表示,加法如何计算,那么负数如

何表示,减法又如何计算呢?本节讨论这些问题。为了书写方便,本

节举的例子都用8个bit表示一个数,实际计算机做整数加减运算的

操作数可以是8位、16位、32位甚至64位的。

3.1.SignandMagnitude表示法请点评要用8个bit表示正数和负

数,一种简单的想法是把最高位规定为符号位,0表示正1表示负,

剩下的7位表示绝对值的大小,这称为SignandMagnitude表示法。

例如-1表示成+1表示成这样用8个bit表示

整数的取值范围是-~27-1,即-127~127。

采用这种表示法,计算机做加法运算需要处理以下逻辑:

如果两数符号位相同,就把它们的低7位相加,符号位不变。

如果低7位相加时在最高位产生进位,说明结果的绝对值大于127,

超出7位所能表示的数值范围,这称为溢出[24],这时通常把计算机

中的一个标志位置1表示当前运算产生了溢出。

如果两数符号位不同,首先比较它们的低7位谁大,然后用大

数减小数,结果的符号位和大数相同。

那么减法如何计算呢?由于我们规定了负数的表示,可以把减

法转换成加法来计算,要计算a-b,可以先把b变号然后和a相加,

相当于计算a+。但如果两个加数的符号位不同就要用大数的绝对值

减小数的绝对值,这一步减法计算仍然是免不了的。我们知道加法要

进位,减法要借位,计算过程是不同的,所以除了要有第1节“为什

么计算机用二进制计数”提到的加法器电路之外,还要另外有一套减

法器电路。

如果采用SignandMagnitude表示法,计算机做加减运算需要处

理很多逻辑:比较符号位,比较绝对值,加法改减法,减法改加法,

小数减大数改成大数减小数……这是非常低效率的。还有一个缺点是

0的表示不唯一,既可以表示成也可以表示成

这进一步增加了逻辑的复杂性,所以我们迫切需要重新设计整数的表

示方法使计算过程更简单。

3.2.1’sComplement表示法请点评本节介绍一种二进制补码表

示法,为了便于理解,我们先看一个十进制的例子:

167-52=167+=167+-1000+1=167+947-1000+1=1114-1000+1=114+1=11

5

167-52→减法转换成加法167+→负数取9的补码表示

167+947→114进1→高位进的1加到低位上去,结果为115

在这个例子中我们用三位十进制数字表示正数和负数,具体规

定如下:

表14.5.9’sComplement表示法

数值补码表示-499500-498501-199809990011498498499499

首先-52要用999-52表示,就是947,这称为取9的补码;然

后把167和947相加,得到114进1;再把高位进的1加到低位上去,

得115,本来应该加1000,结果加了1,少加了999,正好把先前取

9的补码多加的999抵消掉了。我们本来要做167-52的减法运算,结

果变成做999-52的减法运算,后者显然要容易一些,因为没有借位。

这种补码表示法的计算规则用一句话概括就是:负数用9的补码表

示,减法转换成加法,计算结果的最高位如果有进位则要加回到最低

位上去。要验证这条规则得考虑四种情况:

两个正数,相加得正

一正一负,相加得正

一正一负,相加得负

两个负数,相加得负

我们举的例子验证了第二种情况,另外三种情况请读者自己验

证,暂时不考虑溢出的问题,稍后会讲到如何判定溢出。

上述规则也适用于二进制:负数用1的

您可能关注的文档

文档评论(0)

189****1015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档