第1章 程序设计基础_第1页
第1章 程序设计基础_第2页
第1章 程序设计基础_第3页
第1章 程序设计基础_第4页
第1章 程序设计基础_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章程序设计基础2024/8/271《程序设计》课程《程序设计》教学目标通过这门课程的学习,掌握C语言的基本语法和基本结构,熟悉程序设计的基本原理和基本算法,熟悉使用C编程平台和调试方法。教学方式课程讲授上机实验和辅导本课程是一门理论与实践紧密结合的实用技术课程,在讲授知识的同时,系统、全面磨砺学生运用C语言编程解决问题的能力。2024/8/272教材吴永辉,周娟。C语言程序设计。西安电子科技大学出版社。2024。ISBN:978-7-5606-7260-1。实验教材周娟,吴永辉《程序设计实践入门》,机械工业出版社,2021。周娟,吳永輝。提升程式設計力|國際程式設計競賽精選解題解析。碁峰。2022。2024/8/274第1章程序设计基础1.1计算和计算机的发展:需求是发展之母1.2程序设计语言的综述念1.3C语言基础知识1.4C程序设计基础知识2024/8/2751.1计算和计算机的发展:需求是发展之母社会发展对于计算的需求推动了计算机和程序设计语言的发展;计算机和程序设计语言的发展又进一步推动的计算的发展,也产生了新的计算需求。历史,并不仅仅是一系列事件的时间、地点、人物的罗列;对于历史,我们要善于通过对一系列事件的表象进行分析,看到推动历史发展的本质。2024/8/276计算机的发展机械计算机电子计算机晶体管计算机中、小规模集成电路计算机大规模及超大规模集成电路计算机2024/8/277计算机简介:计算机和程序设计计算工具:手动辅助计算装置,如算盘(公元1200年前后)、计算尺==》机械计算机==》计算机计算机、程序设计、程序设计语言可以追溯到20世纪40年代中期。南宋:经贸(外贸)高度发达人类使用的计算工具随着生产力的发展和社会的进步,经历了从简单到复杂、由低级到高级发展的过程。2024/8/278机械计算机机械计算机(mechanicalcomputer):由杠杆、齿轮等机械部件而非电子部件构成。1642年,19岁的法国数学家、哲学家布茨·帕斯卡(BlaisePascal),为了帮助在税务局任职的父亲完成繁重的计算工作,发明了世界上第一台齿轮式机械计算机:通过齿轮系统的联动来进行加法和减法的运算。

1640年,英国资产阶级革命开始。明朝末年2024/8/279电脑先驱查尔斯·巴贝奇(Charles

Babbage)1822年,英国人查尔斯·巴贝奇发现许多有关时间的计算设备在测量时(如天文图、潮汐图、航海图),都存在临界误差,并且测量繁琐。1823年得到政府的支持,1834年发明了分析机(现代计算机的前身)的原理,在只读存储器(穿孔卡片)中存储程序和数据。但因1842年政府拒绝进一步支持他的工作,巴贝奇的计算器未能完成。西方工业革命第一次鸦片战争前夕2024/8/2710第一个程序员:诗人拜伦之女艾达(Ada)她为巴贝奇分析机编写了一组求解伯努利数列的计算指令,这套指令也是人类历史上第一套计算机算法程序,它将硬件和软件分离,第一次出现程序的概念。艾达和第一个计算机程序:随着西方国家进入工业时代,由杠杆、齿轮等机械部件构成的机械计算机被广泛地研发和运用1890年,美国人口普查部门希望能得到一台机器帮助提高普查效率。赫尔曼·何乐礼(HermanHollerith)(后来他的公司发展成了IBM公司)借鉴Babbage的发明,用穿孔卡片存储数据,并设计了机器。结果仅用6周就得出了准确的人口统计数据(如果用人工方法,大概要花10年时间)。机械计算机在二战期间达到顶峰,在1960年代使用,在1970年代逐渐消失,到1980年代绝迹。晚清2024/8/2712电子计算机:问世在以机械方式运行的计算器诞生百年之后,随着电子技术的突飞猛进,计算机开始了真正意义上的由机械向电子时代的过渡,电子器件逐渐演变成为计算机的主体,而机械部件则渐渐处于从属位置。二者地位发生转化的时候,计算机也正式开始了由量到质的转变,由此导致电子计算机正式问世。1904年,美国人LeeDeForest发明电子管,为电子计算机的发展奠定了基础。1937年,英国科学家艾兰·图灵(AlanTuring)提出了一种理想的计算机器的数学模型——图灵机,发展了可计算性理论。现在该理论不仅是计算机科学的基础,也是数学的基础之一,为纪念图灵而设立的图灵奖已成为计算机界的诺贝尔奖。2024/8/2713艾兰·图灵(AllanTuring)1912年生于英国伦敦1931年进入剑桥大学国王学院学习1937年发表论文“OncomputablenumberswithanapplicationtotheEntscheidungsproblem”,提出图灵机“TuringMachine”模型(理想的计算机器的数学模型)1938年在普林斯顿大学获博士学位1939年服役,从事密码破译研究1945-1948年在英国国家物理实验室,研制ACE计算机此后,加盟曼切斯特大学皇家学会计算实验室,此期间发表著名论文“ComputingMachineandIntelligence”1951年被选为英国皇家学会院士1954年自杀身亡2024/8/27142024/8/2715ACMTuringAward(图灵奖)美国计算机协会(AssociationforComputingMachinery)于1966年设立的第一个奖项宗旨:奖励在计算机科学研究中做出创造性贡献、推动计算机科学技术发展的杰出计算机科学家奖金额:最初2万美金;1989年增至2万5千美金2024/8/2716二战时期,美国进行武器研制,弹道计算和原子弹研制的计算量非常庞大。为了解决这一问题,1943年,在宾夕法尼亚大学,开始研制电子计算机,主要参加人员:JohnW.Mauchly(莫奇莱)J.PresperEckert(埃克特)JohnVonNeumann(冯·诺依曼)电子计算机(1946~1956)1946年,第一台真正意义上的数字电子计算机ENIAC(埃尼阿克,ElectronicNumericalIntegratorAndComputer)诞生,开始研制于1943年,完成于1946年,负责人是JohnW.Mauchly和J.PresperEckert,重30吨,用了18000个电子管,功率25千瓦,主要用于计算弹道和氢弹的研制。其中重要参与者美籍匈牙利科学家约翰·冯·诺依曼(John·von·Neumann)提出的“在电子计算机中存储程序和程序控制”的概念,确立了现代计算机的基本结构,该结构一直沿用至今,所以他也被誉为“现代计算机之父”。2024/8/2718冯

诺依曼体系构架由冯·诺依曼等人在1946年6月在一篇报告“FirstDraftofaReportontheEDVAC

”中首先明确提出来的,其实这是基于J.PresperEckert和JohnWillianMauchy在UPen开发的ENIAC计算机体系结构。这种计算机体系结构的特点可以简要地概括为以下几点:计算机(指硬件)应由运算器、控制器、存储器、输入设备和输出设备5大基本部件组成计算机内部采用二进制来表示指令和数据将编好的程序的原始数据先存入存储器中,然后再启动计算机工作2024/8/27191956年5月,中国第一台电子计算机——复旦601型电子积分机在复旦大学诞生(摄于复旦大学校史馆)2024/8/2720在电子管计算机时代,程序设计语言是用二进制代码表示的机器语言,以及使用助记符来表示机器指令或操作码的汇编语言。计算机能直接识别和执行机器语言;汇编语言要通过汇编程序将符号翻译成二进制数的机器语言。二十世纪上半叶,出现了布尔代数(数学)、图灵机(计算模型)、冯诺依曼体系结构(架构)、晶体管(器件)这四个现代计算技术的科学基础。布尔代数:描述程序和硬件如CPU的底层逻辑;图灵机:一种通用的计算模型,将复杂任务转化为自动计算、不需人工干预的自动化过程;冯

诺依曼体系结构(构造计算机的三个基本原则):采用二进制逻辑;程序存储执行;计算机由运算器、控制器、存储器、输入设备、输出设备这五个基本单元组成;晶体管:构成基本的逻辑电路和存储电路的半导体器件,是建造现代计算机之塔的“砖块”。基于以上科学基础,计算技术得以高速发展,形成规模庞大的产业。晶体管计算机(1956~1964):产生电子管计算机已经步入了现代计算机的范畴,但因其体积大、能耗高、故障多、价格贵,从而制约了它的普及和应用。1948年,Bell实验室发明晶体管1950年,日本东京帝国大学的YoshiroNakamats发明了软磁盘,其销售权由IBM公司获得。1953年,磁芯存储器被开发出来。1956年,美国贝尔实验室用晶体管代替电子管,制成了世界上第一台全晶体管计算机Lepreachaun。2024/8/2723晶体管计算机(1956~1964):发展晶体管计算机:主机采用晶体管等半导体器件,以磁鼓和磁盘为辅助存储器,采用算法语言(高级语言)编程,开始出现操作系统。1954年,IBM的JohnBackus和他的研究小组开始开发FORTRAN语言,1957年完成。这是一种适合科学研究使用的计算机高级语言。1959年,GraceMurrayHopper开始开发COBOL语言,完成于1961年。1960年,第一个结构化程序设计语言ALGOL推出。2024/8/2724中、小规模集成电路计算机(1964-1971)1958年JackKilby发明了集成电路(IntegratedCircuit,IC),它是一种把晶体管、三极管、电阻、电容、电感及布线都加工到一片小小的硅片上的电子器件,不久科学家们又把更多的电子元件集成到了单一的半导体芯片上。于是,计算机变得更小,功耗更低,速度更快。1965年,DouglasEnglebart提出鼠标器的设想,但没有进一步研究,直到1983年才被苹果电脑公司大量采用。1969年,ARPANet(AdvancedResearchProjectsAgencyNetwork)计划开始启动,这是现代Internet的雏形。1971年完成。1967年,NiklausWirth开始开发PASCAL

语言,1971年完成。1970年,KenThomson和DennisRitchie开始开发UNIX操作系统。2024/8/2725大规模及超大规模集成电路计算机(1971年至今)计算机逻辑器件采用大规模集成电路(LargeScaleIntegration,LSI)和超大规模集成电路(VeryLargeScaleIntegration,VLSI)技术,在硅半导体上集成了大量的电子元器件,集成度很高的半导体存储器也取代了磁芯存储器。同时,操作系统不断完善,各种应用软件也成为了现代工业的一部分。1972年,C语言开发完成。其主要设计者是UNIX系统的开发者之一DennisRitche。1985年11月,MicrosoftWindows发布。1989年,欧洲物理粒子研究所的TimBerners-Lee创立WorldWideWeb雏形。通过超文本链接,新手也可以轻松上网浏览。1993年,Internet开始商业化运行。1994年,Netscape1.0浏览器发布。2024/8/2726计算机系统组成2024/8/2727计算机系统的硬件组成2024/8/27282024/8/27291.2程序设计语言的综述指令(Instruction)可以被计算机理解并执行的基本操作命令。程序(Program)供计算机执行后,能完成特定功能的指令序列(Instructionssequence)程序=计算机指令序列软件(Software)与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。2024/8/2730程序设计语言程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言。2024/8/2731程序设计语言高级语言High-levelLanguage机器语言Machinelanguage汇编语言AssemblyLanguage自然语言NaturalLanguage2024/8/2732汇编语言汇编语言:用类英语单词缩写的符号指令代替机器语言的二进制代码指令汇编程序用汇编语言编写的程序在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序。称完成这个转换功能的程序为“汇编程序“(assembler)2024/8/2733高级程序主要由语句(statements)构成,语句是要计算机完成任务的命令有统一的语法,独立于具体机器,便于人们编码,阅读和理解用高级语言编写的程序(源程序)在计算机上执行,先要由编译器(也称为编译程序)将源程序转换成机器语言程序既能方便地描述客观对象,又能借助于编译器转换为计算机所接受的语言最接近自然语言的程序设计语言2024/8/2734机器语言/汇编语言/高级语言机器语言计算机汇编程序解释器编译器高级语言汇编语言AssemblerInterpreterCompiler高级语言的发展2024/8/27352024/8/2736非结构化语言非结构化语言是高级语言发展的第一阶段,编程只要符合语法规则即可;程序的结构性比较差,逻辑也较为复杂,由此导致程序变得难以阅读和维护。COBOL、FORTRAN2024/8/2737结构化语言为了解决非结构化语言存在的问题,提出结构化程序设计方法:自顶向下、逐步求精、功能分解程序由顺序结构、选择结构和循环结构构成,这些结构可以嵌套,并且程序中的流程不允许随意跳转。用结构化程序设计方法编写的程序结构清晰,易于阅读和维护。PASCAL、C2024/8/2738面向对象的语言目的是克服面向过程语言过分强调求解过程细节,程序不易复用的缺点引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念用面向对象语言进行程序设计时,以问题中的对象为基础,将具有类似性质的对象抽象成类,利用继承机制,对差异进行程序设计C++,Java等2024/8/2739结构化程序设计方法程序结构自顶向下(top-down)模块化设计方法模块算法的逐步求精(stepwiserefinement)设计方法用结构化控制结构描述算法和编写程序自顶向下、逐步求精、功能分解2024/8/2740自顶向下模块化设计方法核心思想是限制程序设计的复杂性把大程序按功能划分成一些较小的部分,每个完成独立功能分解模块的原则是简单性、独立性和完整性模块化设计方法使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护2024/8/2741自顶向下模块化设计方法(续)在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质:模块具有单一入口和单一出口:输入==处理==输出模块不宜过大,模块功能单一模块的执行不对环境产生副作用让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无关尽量用模块的名字调用模块1.3C语言基础知识C语言是当前使得的最多的程序设计语言(C、C++、Java、Python)中的一种C语言简史C语言特点C语言词汇、数据类型、常量和变量2024/8/27422024/8/2743C语言之父:丹尼斯·里奇(DennisM.Ritchie)HarvardUniversity获学士和博士学位1967年加入Bell实验室工作至今1972年发明C语言1978年,BrianW.Kernighan和DennisM.Ritchie合著《TheCProgrammingLanguage》Turing奖(1983)和IEEE先驱奖(1992)获得者、美国工程院院士2024/8/27441.3.1C语言简史1960年出现的ALGOL60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序1963年英国的剑桥大学推出了CPL(combinedprogramminglanguage)语言。CPL语言在ALGOL60的基础上接近硬件一些,但规模比较大,难以实现1967年英国剑桥大学的MartinRichards对CPL语言做了简化,推出了BCPL(basiccombinedprogramminglanguage)语言2024/8/2745C语言发展史(续)1970年美国贝尔实验室的KenThompson以BCPL语言为基础,设计出了简单且很接近硬件的B语言(取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统。但B语言过于简单,功能有限1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版2024/8/2746C语言发展史(续)1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSIC1987年,ANSI又公布了新标准—87ANSIC1990年,国际标准化组织ISO(InternationalStandardOrganization)接受87ANSIC为ISOC的标准(ISO9899—1990)2024/8/27471.3.2C语言特点一个只输出一行信息的C程序#include<stdio.h>voidmain()/*主函数*/{

printf("Thisbookis<ProgrammingwithCandc++languages>.\n");}2024/8/2748C程序特点一个C程序有一个名为main的主函数主函数前的关键字void表示该函数不返回结果在函数名之后要有一对圆括号,里面定义参数函数体用花括号“{}”括住。花括号可以用来括起任何一组C代码,从而构成复合语句或分程序简单C语句之后有一个分号“;”程序中的“/*…*/”表示程序的注释部分。注释便于人阅读程序,对程序编译和运行都没有作用#include<stdio.h>是编译预处理命令行,指明有关C的输入和输出标准函数也将是程序的一部分2024/8/2749【例】读入两个整数,输出它们的和/*1*/#include<stdio.h>/*2*/voidmain()/*3*/{/*变量定义部分*//*4*/

intx,y,sum;/*定义x,y,sum*//*5*/

/*以下为语句序列*//*6*/

printf("Inputxandy\n");/*提示输入数据*//*7*/

scanf("%d%d",&x,&y);/*输入x和y的值*//*8*/

sum=x+y;/*完成x+y的计算,求sum=x+y*//*9*/printf("x+y=%d\n",sum);/*输出结果*//*10*/}2024/8/2750【例】利用公式:C=(5/9)(F-32)输出F氏温度与C氏温度对照表,设已知F氏温度取0、20、…、200。#include<stdio.h>voidmain(){floatf,c;/*变量定义*/

intlower,upper,step;lower=0;upper=200;step=20;f=lower;while(f<=upper){/*循环计算*/

c=5.0/9.0*(f-32.0);printf(“%3.0f%6.1f\n”,f,c);f=f+step;}}2024/8/2751【例】输入两个实数,输出它们中的小的数#include<stdio.h>floatmin(floata,floatb){floattemp;/*函数使用的变量的定义*/

if(a<b)temp=a;elsetemp=b; returntemp;/*返回temp到调用min()函数处*/}voidmain(){floatx,y,c;/*变量定义*/printf(“输入x和y.\n");scanf("%f%f",&x,&y);c=min(x,y);/*调用函数min()*/printf("MIN(%.2f,%.2f)=%.2f\n",x,y,c);}C语言特点语言表达能力强具有数据类型的构造能力和结构化的程序控制结构语言简洁、紧凑、使用灵活方便能使编译程序产生执行效率较高的代码用C语言可编写移植性较好的程序自由度太大2024/8/27531.3.3C语言词汇、数据类型、常量和变量C语言词汇C语言数据类型常量和变量2024/8/2754C语言词汇基本符号数字10个(0~9)英文字母大、小写各26个(A~Z,a~z)下线字符“_”其它构成特殊符号的字符集基本词汇字面形式常量特殊符号(运算符)关键字标识符(命名数据对象)2024/8/2755关键词(Keyword)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedstaticstructswitchtypedefunionunsignedvoidvolatilewhile2024/8/2756关键词(续)下面几个虽不属于关键字,但建议把它们看作关键字,不要在程序中随便使用。它们用在C程序的预处理命令行中defineundefincludeifdefifndefendiflineelif2024/8/2757标识符(Identifier)作用:用来标识变量、常量、类型、函数、语句等程序对象,C语言用标识符给它们命名命名规则:在C语言中,一个合理的标识符由英文字母或下线符开头,后跟由字母、下线符、数字符组成的字符序列。一般以下线符开头的标识符作内部使用2024/8/2758标识符(续)命名要求:标识符作为程序成分对象的名称,为了便于联想和记忆,建议使用能反映该对象意义的标识符限制:注意不同C系统对标识符的有效字符个数有不同的规定。对于限制标识符8个有效字符的系统来说,两个超过8个字符的不同标识符,当前8个字符依次相同时,系统就认为它们是同一个标识符2024/8/2759C语言数据类型三种数据类型基本数据类型、指针类型、复合数据类型基本数据类型:三种整型(short,int,long)实型(float,double,longdouble)字符型(char)2024/8/2760C语言数据类型(续)复合数据类型数组、结构、联合和枚举指针类型指针类型直接赋予数据对象在内存中的地址2024/8/2761常量(Constant)在程序运行过程中,其值不能改变或不允许改变的数据对象常量按值的表示形式区分它的类型整型常量:15浮点型常量:5.0字符型常量:’a’指针常量:NULL字符串常量:”ABC”2024/8/2762常量(续)可用宏定义给常量命名其一般形式是

#define标识符字符列如:#definePI3.141592024/8/2763变量(Variable)在程序运行过程中,其值可以改变的数据对象变量在内存中占据一定的存贮单元,存放变量的值与变量有关的概念有:变量名;变量数据类型;变量在程序中的有效作用范围;变量在程序执行期间的存在时间;等等2024/8/2764变量(续)程序通过变量定义引入变量,变量定义的一般形式:

类型变量名列表;其中,变量名列表由一个或多个变量名组成。例如:inti,j,sum;/*定义三个int型变量*/intindex=100,big_int=100002024/8/27651.3.4C程序开发环境基础知识C程序从开发到运行大致要经历六个阶段编辑(Edit)预处理(Pre-process)编绎(Compile)连接(Link)加载(Load)执行(Execute)2024/8/2766编辑、预处理与编译编辑程序员用系统环境提供的编辑器编辑源程序,产生一个源程序文件.c或.h

预处理编译前,C编绎器先自动调用预处理程序,对源程序文件作文字转换,产生一个新的内部程序代码编译若编译过程中发现程序有错误,则输出错误的详细信息;对正确的源程序产生机器语言程序,称为源程序的目的代码2024/8/2767连接、加载与执行连接连接程序将目的代码和一些库函数的目的代码连接起来,产生计算机可直接执行的程序映象文件静态连接vs.动态连接加载将要执行的程序装入内存执行装入内存的程序在计算机的操作系统控制下执行DevC++Dev-C++(或者叫做Dev-Cpp)是Windows环境下的一个轻量级C/C++集成开发环境(IntegratedDevelopmentEnvironment,IDE,用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具)。自由软件,遵守GPL许可协议分发源代码。集合了功能强大的源码编辑器、MingW64/TDM-GCC编译器、GDB调试器和AStyle格式整理器等众多自由软件适合于在教学中供C/C++语言初学者使用非商业级普通开发者使用DevC++下载C语言、C++语言的编译器有很多,初学者可以使用简单的BloodshedDev-C++,它是一个跨平台的编译器,可以到网上下载然后安装。DevC++5.11简体中文版下载地址:官方下载:/projects/orwelldevcpp/百度网盘:/s/1mhHDjO8

提取密码:mken

DevC++安装DevC++下载完成后会得到一个安装包(.exe程序),双击该文件即可开始安装。1)首先加载安装程序(只需要几十秒)2)开始安装:DevC++支持多国语言,包括简体中文,但是要等到安装完成以后才能设置,在安装过程中不能使用简体中文,所以这里我们选择英文(English)。3)同意DevC++的各项条款4)选择要安装的组件:选择“Full”,全部安装。5)选择安装路径:可以将DevC++安装在任意位置,但是路径中最好不要包含中文。6)等待安装7)安装完成配置DevC++首次使用DevC++还需要简单的配置,包括设置语言、字体、和主题风格。1)第一次启动DevC++后,提示选择语言(这里选择简体中文)。2)选择字体和主题风格(这里保持默认)。3)提示设置成功。点击“OK”按钮,进入DevC++,就可以编写代码了。Dev-C++操作示范1)运行Dev-C++,单击工具栏上新建按钮,新建一个源程序。2)输入C语言源代码,如下图所示,每个单词和字符会呈现不同的颜色。一种颜色代表一个类别的符号,这样阅读起来十分清晰。3)单击工具栏中保存按钮(或快捷键Ctrl+S),在对话框中输入文名1-1,然后保存。4)单击编译(或快捷键F9),可以看到屏幕下方出现:表示编译成功了,也有些版本会出现一个CompileProgress,里面的Status显示为Done,表示编译成功了。5)单击工具栏的运行按钮(或快捷键F10),程序就运行了,这里你需要从键盘输入“1”,再输入一个空格,再输入“2”,再按回车Enter键,就可以看到上面的结果3了。1.4C程序设计基础知识存储和二进制算法+数据结构=程序编译操作系统存储和二进制信息处理的基本单位:“比特”其英文为“bit”,它是binarydigit的缩写,中文译为“二进制数字”或“二进位”,一般简称为“位”,用小写字母“b”表示比特只有两种状态:0或1,它们不分大小,是组成数字信息的最小单位。2024/8/2784存储的有关术语8位二进制数表示一个字节英文用Byte表示,简写为B字节是计算机中用来表示存储空间大小的最基本的容量单位千字节(KB)、兆字节(MB)、十亿字节(GB),换算关系:B:1B=8bitKB:1KB=210字节=1024B(千字节)MB:1MB=220字节=1024KB(兆字节)GB:1GB=230字节=1024MB(吉字节、千兆字节)TB:1TB=240字节=1024GB(太字节、兆兆字节)2024/8/2785二进制数十进制数转二进制数,采用除以2取余的方法,例如,求14的二进制数,14

2=7余0;7

2=3余1;3

2=1余1;1

2=0余1;将余数从最后的1开始,从后向前倒序写,就是14的二进制数:1110。二进制数转十进制数,从右往左依次用二进制位上的数字乘以2的n次幂的和(n大于等于0),例如,二进制数1110转十进制数,1

23+1

22+1

21+0

20=8+4+2=14。算法+数据结构=程序“算法+数据结构=程序”,1984年图灵奖获得者NiklausWirth提出的著名公式概括了程序设计的知识体系,也是计算机学科知识体系的核心部分。2024/8/2787NiklausWirth(1934~2024)1959年获ETH(苏黎世联邦理工学院,EidgenössischeTechni

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论