计算机常识
-
什么是计算机 ?
- 顾名思义,就是能够进行数据运算的机器(台式电脑、笔记本电脑、平板电脑、智能手机)
- 计算机_百度百科
-
计算机的发明者是谁 ?
- 关于电子计算机的发明者是谁这一问题,有好几种答案:
- 1936年英国数学家图灵首先提出了一种以程序和输入数据相互作用产生输出的计算机构想,后人将这种机器命名为通用图灵计算机
- 1938年克兰德·楚泽发明了首台采用继电器进行工作的计算机,这台计算机命名为Z1,但是继电器是机械式的,并不是完全的电子器材
- 1942年阿坦那索夫和贝利发明了首台采用真空管的计算机,这台计算机命名为ABC
- 1946年ENIAC诞生,它拥有了今天计算机的主要结构和功能,是通用计算机
- 关于电子计算机的发明者是谁这一问题,有好几种答案:
- 现在世界上公认的第一台现代电子计算机是1946年在美国宾夕法尼亚大学诞生的ENIAC(Electronic Numerical Integrator And Calculator)
-
计算机特点是什么 ?
计算机是一种电器, 所以计算机只能识别两种状态, 一种是通电一种是断电
正是因为如此, 最初ENIAC的程序是由很多开关和连接电线来完成的。但是这样导致改动一次程序要花很长时间(需要人工重新设置很多开关的状态和连接线)
为了提高效率,工程师们想能不能把程序和数据都放在存储器中, 数学家冯·诺依曼将这个思想以数学语言系统阐述,提出了存储程序计算机模型(这是所谓的冯·诺依曼机)
-
那利用数学语言如何表示计算机能够识别的通电和断电两种状态呢?
- 非常简单用0和1表示即可
- 所以计算机能识别的所有指令都是由0和1组成的
- 所以计算机中存储和操作的数据也都是由0和1组成的
0和1更准确的是应该是高电平和低电平, 但是这个不用了解, 只需要知道计算机只能识别0和1以及存储的数据都是由0和1组成的即可。
什么是计算机程序 ?
计算机程序是为了告诉计算机"做某件事或解决某个问题"而用"计算机语言编写的命令集合(语句)
只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成
-
现实生活中你如何告诉别人如何做某件事或者解决某个问题?
- 通过人能听懂的语言: 张三你去楼下帮我买一包烟, 然后顺便到快递箱把我的快递也带上来
- 其实我们通过人能听懂的语言告诉别人做某件事就是在发送一条条的指令
- 计算机中也一样, 我们可以通过计算机语言告诉计算机我们想做什么, 每做一件事情就是一条指令, 一条或多条指令的集合我们就称之为一个计算机程序
什么计算机语言 ?
-
在日常生活、工作中, 语言是人们交流的工具
- 中国人和中国人交流,使用中文语言
- 美国人和美国人交流,使用英文语言
- 人想要和计算机交流,使用计算机语言
-
可以看出在日常生活、工作中,人们使用的语言种类很多
- 如果一个很牛人可能同时掌握了中文语言和英文语言, 那么想要和这个人交流既可以使用中文语言,也可以使用英文语言
- 计算机其实就是一个很牛的人, 计算机同时掌握了几十门甚至上百门语言, 所以我们只要使用任何一种计算机已经掌握的语言就可以和计算机交流
常见的计算机语言类型有哪些 ?
-
机器语言
- 所有的代码里面只有0和1, 0表示不加电,1表示加电(纸带存储时 1有孔,0没孔)
- 优点:直接对硬件产生作用,程序的执行效率非常非常高
- 缺点:指令又多又难记、可读性差、无可移植性
-
汇编语言
- 符号化的机器语言,用一个符号(英文单词、数字)来代表一条机器指令
- 优点:直接对硬件产生作用,程序的执行效率非常高、可读性稍好
- 缺点:符号非常多和难记、无可移植性
-
高级语言
- 非常接近自然语言的高级语言,语法和结构类似于普通英文
- 优点:简单、易用、易于理解、远离对硬件的直接操作、有可移植性
- 缺点:有些高级语言写出的程序执行效率并不高
-
对比(利用3种类型语言编写1+1)
- 机器语言
10111000 00000001 00000000 00000101 00000001 00000000
- 汇编语言
MOV AX, 1 ADD AX, 1
- 高级语言
1 + 1
- 机器语言
什么是C语言?
-
C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点
- 非常接近自然语言
- 程序的执行效率非常高
- C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,
- 例如:C++、C#、Object-C、Java、Go等等
- C语言是所有编程语言中的经典,很多著名的系统软件也是C语言编写的
- 几乎所有的操作系统都是用C语言编写的
- 几乎所有的计算机底层软件都是用C语言编写的
- 几乎所有的编辑器都是C语言编写的
C语言历史
- 最早的高级语言:FORTRAN-->ALGOL-->CPL-->BCPL-->C-->C++等
“初,世间无语言,仅电路与连线。及大牛出,天地开,始有 FORTRAN、 LISP、ALGOL 随之, 乃有万种语”
- 1963年英国剑桥大学推出了CPL(Combined Programming Langurage)语言。 CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现
- 1967年英国剑桥大学的 Matin Richards(理查兹)对CPL语言做了简化,推出了 BCPL (Base Combined Programming Langurage)语言
- 1970年美国贝尔实验室的 Ken Thompson(肯·汤普逊) 以 BCPL 语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母),并用B语言写出了第一个 UNIX 操作系统。但B语言过于简单,功能有限
- 1972年至1973年间,贝尔实验室的 Dennis.Ritchie(丹尼斯·里奇) 在 B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言即保持 BCPL 语言和B语言的优点(精练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等)
C语言标准
- 1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
- 1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C(C89)
- 1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99
- 2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即C11,它是C程序语言的现行标准
C语言现状
-
年度编程语言
- 该奖项颁发给了一年中最热门的编程语言
为什么要学习C语言?
- 40多年经久不衰
- 了解操作系统、编译原理、数据结构与算法等知识的最佳语言
- 了解其它语言底层实现原理必备语言
- 基础语法与其它高级语言类似,学会C语言之后再学习其它语言事半功倍,且知根知底
当你想了解底层原理时,你才会发现后悔当初没有学习C语言
当你想学习一门新的语言时, 你才会发现后悔当初没有学习C语言
当你使用一些高级框架、甚至系统框架时发现提供的API都是C语言编写的, 你才发现后悔当初没有学习C语言
学好数理化,走遍天下都不拍
学好C语言,再多语言都不怕
如何学好C语言
学习本套课程之前 | 学习本套课程中 | 学习本套课程之后 |
---|---|---|
- 如何达到这样的效果