- 1、本文档共168页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机的算术运算
数字的精度对科学非常重要。
D’arcy Wentworth Thompson On Growth and Form, 1917
4.1.简介 1
4.2 带符号数与无符号数 2
4.3 加法与减法 17
4.4 逻辑运算 26
4.5 构造算术逻辑单元 35
4.6乘法 50
4.7 除法 69
4.8.浮点运算 83
4.9.实际资料:PowerPC和80x86中的浮点部件 117
4.10.谬误和陷阱 122
4.11 结论 127
4.12.历史回顾和参考文献 134
4.13 重要术语 148
4.14 习题 149
计算机的五个典型部件
4.1.简介
计算机中的字(word)是由位(bits)组成的,因此,字可以表示为二进制的数字。大家都知道,自然数(0,1,2等等)既可以用十进制的形式表示,也可以用二进制的形式表示,但是,其它一些常见的数又如何表示呢?例如,
如何表示负数?
可以用计算机中的字表示的最大的数是多少?
如果某一操作所产生的结果比一个字所能表示的最大的数还大,那会出现什么情况呢?
小数和实数如何表示?
奔腾芯片曾经出过一个臭名昭著的浮点运算错误,你可能会问,这到底是怎么一回事呢?在所有这些问题的背后,都有一个很基本的原理需要弄清楚:硬件究竟是如何进行加法、减法、乘法以及除法运算的?
本章的目的就是要揭示这些基本原理;这其中包括如何表示各种数据,用什么算法来实现算术运算,硬件是如何实现这些算法的,以及在指令集中如何表示所有这些有关的内容,等等。有了这些知识之后,你就能解释在使用计算机的过程中遇到的各种不明白的事情了。(如果你对如何表示带符号的二进制数很熟悉的话,就可以跳过下一节,直接转到220页的4.3节)。
4.2 带符号数与无符号数
我们可以通过各种基数(base)来表示一个整数。正象我们在第三章中所介绍的那样,人们通常习惯于以10为基数,而在计算机中则更适合于以2为基数。由于我们常常既要用到十进制数,又要用到二进制数,因此,为了避免混淆,我们用下标10来表示十进制数,而用下标2表示二进制数。
对于任何一种进制(设基数为base)而言,其中的第i个数字d所代表的值为:
d ( Base i
其中,i由右至左从0开始依次递增。自然而然地,由此也得到一种对字(word)中的各个位进行编号的方法:直接将与该位对应的基数的幂次作为其编号即可。例如:
10112
代表了:
(1 ( 23) + (0 ( 22) + (1 ( 21) + (1 ( 20)10
= (1 ( 8) + (0 ( 4) + (1 ( 2) + (1 ( 1)10
= 1110
在这个字中,各位按从右到左的顺序依次编号为0, 1, 2, 3, …。下图给出的是MIPS机器一个字中各个数位的编号方法,并标出了数10112的放置位置:
一个字的各位既可以按由低位到高位的顺序从左至右排列,也可以从右至左排列。因此,“最左位”(leftmost)和“最右位”(rightmost)这两个词是有歧义的。为了避免这个问题,我们用最低有效位(Least significant bit; LSB)来表示上例中最右侧的第0位,而用最高有效位(Most significant bit; MSB)来表示最左侧的第31位。
MIPS机器的字长为32位,因此,一个字可以用来表示232种32位长的不同模式。很自然地,我们可以用这些组合来分别表示数字0到232-1(一共4,294,967,29510个):
=
=
=
...
=
=
=
软硬件接口
将2作为基数,这并不符合人们的习惯。由于人有10个手指头,我们自然而然地就习惯了以10为基数的计数法。那么,计算机为什么不采用十进制呢?实际上,最早的商用计算机确实提供了一些十进制操作。但问题是,由于(10(8)/32=2.5倍。除了需要更多的存储空间以外,对于用这种方法表示的数字,硬件在做加法、减法、乘法以及除法等各种运算时,所执行的操作也要比二进制表示法复杂得多。正是基于这些原因,计算机专家们才一致认为,在计算机中使用二进制表示法是再自然不过的了,即使只是偶尔使用十进制表示法,也会让他们感到奇怪的。
要注意的是,二进制位的各种组合方式不过是用来代表某个数字而已。其实,每一个整数实际上都有无数位;在这无数位中,除了最右边的若干位以外,其余的都是0。只不过我们通常不写出数字左边的这些0而已。
我们在4.5节到4.7节中将提到,可以用硬件的方式直接对以二进制方法表示的数进行加法、减法、乘法以及除法等运算。如果这些运算的正常结果无法用硬件所能提供的有效位数表示出来,就称这种现象为“溢出”(o
您可能关注的文档
- 八年级数学线段垂直平分线.ppt
- 发送超大文件给客户8种方法.doc
- 第二节 B2B电子商务.ppt
- 第9章 电子商务企业资源计划及供应链管理.ppt
- 给排水计算软件使用说明_附件.doc
- 智能变电站对电气设备一些要求(钱.ppt
- 怎样品析文章的语言.ppt
- 实验二基本算数运算详解.doc
- 云南省银行业金融机构高级管理人员任职资格考试题库课件.pdf
- 高斯随机过程_附件.ppt
- 宁夏回族自治区银川一中2024-2025学年高三上学期第三次月考试题 地理含解析.docx
- 百师联盟2025届高三一轮复习联考(二)生物答案.pdf
- 海南省海口市2025届高三上学期摸底考试 语文答案.doc
- 2025届鄂东南联盟高三11月联考化学答案.pdf
- 黑龙江省哈尔滨市第九中学校2024-2025学年高三上学期期中考试 化学试卷(含答案).docx
- 广东省华南师范大学附属中学2024-2025学年高三上学期11月综合测试(二)物理含答案.docx
- 广东省华南师范大学附属中学2024-2025学年高三上学期11月综合测试(二)历史含答案.docx
- 宁夏回族自治区银川一中2024-2025学年高三上学期第三次月考试题 化学含答案.docx
- 广东省广州市增城区郑中均中学2023-2024学年高三下学期第三次月考试数学试题.doc
- 广东省揭阳市揭东区2024年下学期高三数学试题5月第二次月考考试试卷.doc
最近下载
- 《克拉玛依市城市总体规划》(2014-2030年).pdf
- The Blue Planet《蓝色星球(2001)》第一季第三集完整中英文对照剧本.docx VIP
- 新教科版五年级上册科学全册教学反思.doc
- 抗风湿病药物性肝损伤诊治中国专家共识(2024年版)解读.pptx
- GB 50966-2014 电动汽车充电站设计规范.docx
- 国家开放大学《商务英语4》章节自测1-8参考答案.pdf
- 实验九 动物细胞内微丝结构的观察(鬼笔环肽标记法).ppt
- 全国大学生职业规划大赛获奖PPT模板.pptx
- 《机械设计基础(第三版)习题册》参考答案.pdf VIP
- The Blue Planet《蓝色星球(2001)》第一季第四集完整中英文对照剧本.docx VIP
文档评论(0)