《标准C语言基础教程(第四版).docx》由会员分享,可在线阅读,更多相关《标准C语言基础教程(第四版).docx(29页珍藏版)》请在优知文库上搜索。
1、第-部分基岫知MKS第1个计妹机程汴设计介绍第2章在Cifti编程中开始第3章数据处理和交互式输入K1中计算机租用设计介绍1.1历史和慢件用某种机器执行计算的过程儿丁,与有记录的历史一样古老.44早的计算工具是算盘(ahncu,在当今的中国仍很常见,就像英田的手持式计獴擀If,但是这两类设i都需要人的11按畲与才能使用“用算IS相加两个牧要求按动算球.用计算相加四个数机要:求按下四个数字谊和加号Bh仃心Jt的首次尝试建造一台可筑程的计W机器是在1822年由英国的衣尔斯巴比奇(CharlesBabbaKe)进行的.侍人诺行庠伦(IqrdByron)的女儿艾达拜伦(AdaBymrO开发过Tl指令,
2、可用于操作这台机:(长麻上这台机器没有被建造出来)。这台俄巴比奇称为分析引塞的机器尽我在他的“生之年没被成功地建过出来,但是可战程的机器的概念被保窗下家.1937年.荚Ia艾奥比州立大学的均翰阿塔纳索夫(JohnV-Aianasoff)博I:和一位名叫克利福德贝里(CMfeHBerry)的研究生利用电子元减件每分实现这种机JS见图1.1).这台机器称为BC.ABC表示阿塔纳索夫一贝里计究机(Enascrf-BurryConputer).运行时要求-幺撵作人心控制外SJ的配戏以执行残IW的运算,因此,内部存钻一殂可秒代的1今的IJ标还是我有达到.图1.1查尔斯巴比奇的分析引擎1939年末爆发的第
3、二次世界大成.也得开发计灯机的需求更加强劲.这项工作的先驱之一支美W宾夕法尼北大学麻尔J:程学院的妁翰马茨奥(JahnrMauchIy)博士,他曾长拜访过阿塔纳素夫并见过也的AHC机器,后家就帮手与普瑞斯休艾克特”.PresperEckert)一起研制一种称为ENlAC(ElectricalNunericalIntegratorandCcoputer)的电广数字枳分计停机.这个项H的基金由美国政府提供.这台机最早实现的功能之一是计尊大炮发射的徐道机迹.到1X6年完成时.ENlAC已经包含18OOO个真学电子管明妁30(XlOFft,每秒能执行50次加法或360次来法(见图1.2).图1.2EN
4、IAC在利用我空电行的ENlAC的研刎工作正在进行的问时.哈佛大学的研究人员正在从事利川机械绰电洪开关研制名为Mark【的计算机(见1.3).该机既于】弘4印完成,不过它毋秒只傥执行6次乘法.这两台机择与皿一样,都雷饕外部巾。才能执行预期的运算.图1.3MarkI1949年5月6Bi及普制桥大学EDsAC(ElectronicDeleyedStorageAuUxiaticmpuler,电子时存砧门动计灯机)的成功运行.能存他秩序的计算机的取线目标终于实现了.除了执行计尊之外,EDSACi1.fiS解存储数据和指导计算机运行的指令.EDSAC结合了一种存彷券的形式.存储SS的Ki理由约翰玛诺侬曼
5、JhnWxiXemHnrO提出,允许取何(FtriCVeA条指令,然后取向执行这个指令所需要的数推.同择的戊计和操作成理现花仍然被人多tifB.机所使用椎由必加攵变的特点是用于制造计.源机的无部件的大小和执行通收.以及存储在计饪机中的积序类型.用体察说,用于Wiif和机的无蔺件砍为硬件(hardware).而程序称为软件CoEare).计算机硬件计停机由称为硬件的物理元部件构成,,硬件的用途是在一个已存储的程序的指导F使数据的存储和处理更容S.如果计算机硬件能够别人样使用相同的符号存储数据.如放字126就可以用符号1.2和6存储.同样.我们认做“A*的字母也可以用这种相同的符“进行存储.令人遗
6、Ie的是.计算机内的海件要求种不同的数字和字母农示方法,只有首先理解了H算机为什么不能使用我。的籽号之后,才能进一步理篱数字在机揩内部是如何史东的.这将使理好用于存体和处理数据的计口机的大分部件更容易些.位和字节计算机中最小的和最基本的数据项是位(bi).从物理上U.一个位实际上此个廉能开乂能大的开天.习慎上开的位置用O表示.而关的位置M1表示遗然的是,这个习惯有口忒断,并且保常,常会遇到相反的情况,开和关的位区分别表示为1和D.历史注解;二边制校本知识在几年的时间里.因塔纳索夫樽士加在为如何设if台低帮助他的艾奥比州立大学的研究生解决乂杂的力和式求解同咫的计第机器面大伤胞的他考虑正道一日些r
7、二进刎敝的机;s二进制数型用于具仃两个容妙辨别状态(开和关)的机电装置城门然的系统,但他又担心人O不会使用这种不是基于燃态的和方JH的十进制系统的机揩Wfi5.在1937年伊利诺伊州的小娘馆里个杂冷的晚上,也终r下决心采川呆简单的利赞用以小的二进制ft(t)来IW过他的计算机sa.接下来的两球他和研究生克利福德贝里建迨/第台电:.物字计算机称为皿:(阿塔纳索夫一贝里H!?机).从够时起,大多款主流的计算机一汽是二进剂机器.小的位只能衣示数侑O和1.这取M了它的可用性.因此为了存M和传输故据,所有的计口机都把织位沉令在一起.8个位祖令在-也形成个更大的收元.它是个几乎地川的计就机标小.称为1个字
8、1V(byte).1个字节的8个便中的fij一位旗可以是。也可以是1.总共能移表示256种不同的模式(PatsE).这些模式由IXIQIM)QW(8个开关全开到IIlnln(8个开关全关)和它们之间所有的O和1的可能祖合筑成.这些校式的姆个都能够用来衣示字母发中的一个字母、共他的触字符(美元符,汉号等)、位数字或者多位数字等.由。和1组成的用表示字母m数字和H他取字符的模式Oi林为字符码(比如ASCu码,它将在2.1节介的),对于类似名林和地址以及任何需娈处理的文本而N,字符码是作常有用的但足对于算术数据.它几平从来没有被使用过.这有两方面的原因.首先,把十进IWtk转换成字符码霸要为碌个故字
9、/省个代码.对于大数字.这会浪费计口机的内存空间.然而奥塞本的原闪是:暴F数字10的tMM计数系统本身就不核计停机内部的帔件所支持,同忸起位是il算机的小本存心部件,只能采用两个可能的表示。和1的开关状态之一.这发明趋于这两个状电的计数系统将产生更多的意义,事实上就是这样,1.8节将介绍端常见的使用M于2的计数系统.财丁计券机内部的计数系统不同卜进系统的情况.我们应该不会想到奇怪.举例来说,你也许熟爰下面两个itSk系统,并H能够容易堆识别它们,罗马数字:XIV哈桁标记系统;部件所行的计算机从价假儿仃万美元的大里超级计算机到价他几百美元的桌IBi个人计JIt机理必须执行一个最小的任务妪.并具备
10、完成下列任务的能力:1 .接收输入,包括数据和折合输入,2 .显示输出.包括文本和数字输出.3 .存储数梯和指令.1.对怆入的数据或已存储的敖品执行算术和逻轼运算.5.监视.控制和指导乐统的全SJ拨作和I序,图1.4衣示的是支持这些解力和蛆成合计算机硬件的完瞥的计。机部件.图1.4计弊机的基本硬件的元历史注解:图其机(TurinMachine)在2。世纪30年代和,K)年代,艾伦马西森图曼(AlanWtthiSQnTuring,1912-1960和其他人提出了一种描述计#机渊应谖能好搬什么的理论,图灵的理论机SS称为图灵机,它包含杆决编程何题的最小操作象.通过给这样一台假校的计算机纲指令.图灵
11、希里悠济语明所有的问题都能够解决.它在证明中佚得的成功是仃些计8不傥被任何机IK超决就像仃些“虺不饯被人解决样.在.第台电计。机建造之前图M的工作形成了ifWtIlS论的-H1.也对这个研究团队的贡献H按守效了他的理论得以具体实现,这就是二播时期开发出的关耀的变码横件计算机.主存储器单元(MainMenoryVnit),这个雎7口按照字节麻序存储数累和指令.如处要操作计舞机.个程序必须驻例在主存储器中.主存储器将1个或多个字版组合成一个雌元.杉为字(wsd).尽管更大尺寸的字句利FH比机速慢和能力的增加,但它是通过潴加H算机的复杂性达到的.早期的个人计算机(PC).如AppleUe和CEdor
12、e计翼机,在内都存储和传送由1个字节现成的字.第台IBMPC使川由网个字节组成的字.曲目前更多的基子英制尔芯片的PC存他和处理由J个字节细成的字.字在计以机存保备中的扑列类慑丁人旅坨中套间的排列.旅忸中的忸个套间都由相同大小的历间祖成.就像祗个套同柢右惦-的月间*?让颈客在找和确定它样.H算机存心器中每个字排有性-的敖字堆址*与房号一样,字地址总是正的.无符号的、用于置找和物定用途的克整数?,与瑞伯国向通过房门连接形成更大的台同样,字徒够纲台也更大的肽元.以适应不同大小的放施类型.作为一个物理设备,主存储5用防机存取存储i(RAM)构造.这意味着每一段存读器都能幡与其他段杆被快速地机存取,主存
13、储Ift同样是为央性的(“4Iaile).无论其中存偌的是什么内容.一旦电源切断就会丢失.当程序正在被执行时,程序和效据总.是存站在IMM中,IMM的大小通常以用户可获得名少RN的字出来标明.当前的PC存储器股至少有512兆字节(1兆字节=1MB).第二笑存储;S是只读存储器(ROM).ROM是非易失性的,当电淑美斯时它的内容不会洒失.RcW总是包含不假丢失或者不能被用户改变的基本指令,这些指令包括:在电影接通时后动计籁机运行所必须的指令,花计。机运行时制造Ift要求必须永久可访问的其他指令,中央处理单元(CPS.中央处理单元由陶个基本的了单元组成:拄M单元(COntroIunit)和算术9辑
14、单元(A1.I.Aritheeticand1.osicUni.拄制柒元指导和Ift视计算机的运行,它隹持对存怙器中下一条指令保留的Zw的鼠踪、发出从系统的其他单元读取致摄和把数幅芍到系统的其也中无所优要的信号,并II执行所为的Ifi令。AW则执行计算机提供的所有计算,Ulfill.收,比1等。CpU是计算机的中心元件和堆品战的部分.当前的CPu利用片微芯片构造.称为Ri处理:(Sicruprocessor).图1.5概示的是Viit笔记本电脑中使用的一个代衣技术发展水平的微处理器芯片及K内部结构,图15代表技术发展水平的英特尔微处理班输入/输出单元(I/O).饱入/输出朝元提供对计惊机的访问,
15、允许计算机输入和输出数据,它是连接外IH设备(InttA,控川台屏解和打印机)的接口.二极存件;S.因为大容fit主RAM存俅骞仍然相对M:;”“行易失性,伶为球微集的永久春储区是不实际的.二雄或者物助存储设备可实现这个用途,过去是将数据存储在打孔的卡片.成帝或其他的媒介上,实上现在所有的二级存储器播是磁带、出次和只求光fitCD-ROM).幽带和磁机的衣面涂行层能够被俄化以存他牧据的物质.当Iiif的确密姆英寸U英寸=2.54悚米使第存彷儿干个字符一盘磁带可以存储几万兆字节的数报.琳帝本上是一种仃!序的存储介质,这意味着它允许数品以一个从开蛤到结束的有胤序的流被写入和读出,如果希望存取磁带中
16、麻的块数第,则必须打描所有在前而的数据,以找到这块数据,囚为这个特点,磁带主要用于大Ie历史数据的备份种更便利的快速存取效掘的方法是利用直接存取存储设拓(DASD.directaccessstoragedevice).它允许计算机读写任何一个文件或程序.而不受它归在存俅81介质上的彼盥的约束.在光盘(6)出现之前.地通行的MSO是退盆,,一个磴性慢盘加11nicharddisk)由你国挠在同一根轴上的一个或几个钠性盘片生成,个可移动的存取胃的定读写机械瑟先在可记录的衣面上.他并不按软st片表面的位Tr这样的配KinlS1.6所示.图1.6检找驱动JS的内Sf结构图1.7奴初的(20世纪80年代)