主要内容
1.计算机的基础知识
计算机的概念:
广义:可编程自动化计算设备(机械计算机、电子计算机与计算器等)
狭义:电子计算机
计算机的特征:
接收输入(键盘、鼠标) 处理数据(CPU) 存储数据(内存、存储器) 产生输出(显示屏、打印机)
计算机程序与软件程序的定义:控制计算机执行处理任务的指令集 程序构成了软件 软件的分类 系统软件 应用软件 开发工具
软件的分类:
系统软件 系统软件可分为操作系统和支撑软件,为计算机提供最基本的功能。 操作系统是最基本的软件,支撑软件包括CPU监视器、设备驱动器等。 系统软件负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。
应用软件 应用软件是为了某种特定的用途而开发的软件。 应用软件可以是特定的程序,如视频播放器等;可以是一组功能联系紧密,可以互相协作的程序的集合,如微软的office套件;也可以是由众多独立程序组成的庞大软件系统,如数据库管理系统等。 开发工具 开发工具是用来编制系统软件和应用软件的软件、语言与工具。开发工具包括C++等编程语言、HTML等脚本语言与调试工具等。
2.计算机的分类
多种多样的计算机分类方法
按计算性能:巨型机、大型机、中型机、小型机、微型机。
按使用场景:个人计算机、服务器、大型计算机、超级计算机、手持设备、量子计算机。
个人计算机 个人计算机是在大小、性能以及价位等多个方面适合于个人使用,并由最终用户直接操控的计算机的统称。 包括台式机、笔记本电脑、上网本、平板电脑、超极本、工作站等。
服务器 服务器通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机。 服务器的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。
大型计算机 大型计算机(简称“大型机”)体积庞大,价格昂贵,能够同时为众多用户处理数据。 大型机主要用于大量数据和关键项目的计算,例如银行金融交易及数据处理、人口普查、企业资源规划等等。
超级计算机 超级计算机是计算机中功能最强、运算速度最快、存储容量最大的一类计算机,是一种超大型电子计算机。 超级计算机具有很强的计算和处理数据的能力,主要特点表现为高速度和大容量,配有多种外部和外围设备及丰富的、高功能的软件系统。
嵌入式计算机 嵌入式计算机是嵌入到商品中的微型计算机,用来执行与商品相关的特定功能或任务。 洗衣机、彩色电视机、DVD机,甚至电子钟中都包含着嵌入式计算机。 现代汽车中的微处理器都属于嵌入式计算机,这些芯片被用来控制汽车完成多种任务,如ABS、点火、车载多媒体设备等。
手持设备 易于手持并使用的设备:智能手机、Kindle电子书等。 手持设备可以分为允许用户安装应用和不允许用户安装应用两大类。 允许用户安装应用的手持设备可以归类为手持计算机。
量子计算机 量子计算机和传统计算机的区别在于它们利用电子、原子核等粒子的工作作为量子位。 理论上量子计算机的速度相比于传统计算机以指数方式增长——n个量子位能代表2的n次方,而n个常规位只能代表n。 随着量子位数的增加,量子计算机的性能将达到传统计算机难以企及的程度。
计算机的兼容性
如果两台计算机使用的是同一操作系统,那么它们就是兼容的,即它们可以使用相同的软件和配件,且数据可以在其间便捷地转移。 按照兼容性,计算机可以被分为三类: 苹果的macOS和IOS 微软的Windows和Windows Phone 谷歌的Chorme OS和Android
使用计算机的优缺点
优点 计算速度更加快速准确 用很少的空间存储大量的信息 从不疲惫 开拓视野 计算机网络方便人们之间的沟通 缺点 网络沉迷 电磁辐射 碎片化时间 低头族
3.计算机的数字数据表示
数字数据与模拟数据 数字数据:离散状态 模拟数据:连续值 常用的进制系统 二进制:0-1 十进制:0-9 十六进制:0-9、A-F 通用规则:逢基数进一
进制转换
十进制转换为其他进制:余数法 十进制的数被2(转换成二进制)或者16(转换成十六进制)除,得到商和余数。将余数记录下来,商继续重复上述过程,直到商为0。所有余数倒序排列即是转换后的数字。
对于十进制小数:将其小数位乘2(转换为二进制),提取整数部分,再对小数位重复如上操作,直到小数部分为0。将过程中得到的整数部分顺序排列即是转换后的数字。
例:将十进制小数0.8125转换为二进制小数 (1)用2乘该数,取整 (2)将所得数的小数部分乘2,取整 (3)重复上一步,直到小数部分为0 (4)将所得整数顺序排列,得到对应的二进制小数0.1101
非十进制转换为十进制:位权法 把各非十进制数按权展开,然后求和
例:将二进制1111101001.1转换为十进制 (1111101001.1)2 = 1 × 29 + 1 × 28 + 1 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 + 1 × 2-1 = (1001.5)10
二进制与十六进制的相互转换: 十六进制一位对应二进制四位
例:(F6A9)16=(1111011010101001)2
字符编码
ASCII码 使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符 EBCDIC码 Unicode码 又可分为UTF-8、UT8-16、UTF-32等 汉字编码 GB2312、GBK、GB18030-2005等
图像编码
将图像离散成像素点,每一个点的色彩都可以由一个或一组特定的二进制数来表示
声音编码
用离散化的点代替连续的波形
位与字节
位(bit,简写b) 一位代表着一个二进制数字0或1 字节(byte,简写B) 一个字节由8个位组成 常用简写及换算 1KB = 1024B,1MB = 1024KB,1GB = 1024MB,1TB=1024GB,1PB=1024TB,1EB=1024PB 1MB=8Mb 网络带宽的单位通常是Mb/s,文件大小则通常以字节为单位
芯片
芯片也称微电路、集成电路、微芯片,是指由半导体材料组成的极薄的薄片。 常见的芯片封装类型 DIP双列直插式 PGA插针网络式 BGA球珊阵列式 CSP芯片尺寸式 MCM多芯片模式
4.计算机的数字处理
程序通常是由高级编程语言编写的,如C、C++、C#、Java、COBOL等。 高级编程语言使用关键字的有限集(如if、for、while、printf等)来形成程序语句,这些语句可用来指挥CPU进行相应的操作。 未编译的按照程序设计语言规范书写的文本为源代码。源代码不能直接被计算机识别,必须经过解释器或编译器转换才能被执行。
解释器
解释器的执行方式类似于日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码,一边执行。 解释器在程序运行时,一次只会转换并执行一条语句。在一条语句被执行后,解释器才会转换到下一条语句,如此循环直到程序结束。 这种方式效率较低,应用程序不能离开其解释器,但比较灵活,可以动态地调整、修改应用程序。
编译器
编译器在程序执行之前,就将程序源代码“翻译”成目标代码。 编译器能一次性转换一个程序中的所有语句,并将生成的目标代码放在新文件中。 使用编译器生成的目标程序可以脱离其语言环境独立运行,使用比较方便、效率较高。但如果需要修改应用程序,则需要先修改其源代码,再重新编译。
处理器逻辑
微处理器中包含许多个微型元件,这些元件可分为不同种类的单元。
算术逻辑单元(Arithmetic Logic Unit, ALU)是微处理器的执行单元,是所有微处理器的核心组成部分。
ALU可以进行算术运算和逻辑运算。ALU使用寄存器来存放需要处理的数据,使用累加器来存放处理结果。 控制单元是整个微处理器的指挥控制中心,负责程序的流程管理。它根据用户编好的程序,依次从存储器中取出各条指令加载到ALU的寄存器并命令ALU处理。
程序启动时,控制单元的指令指针会只想第一条指令的内存地址,控制单元会将该地址中的数据复制到它自己的指令寄存器中以获得相应指令; 获取指令后,控制单元会解释指令,获取指定的数据或是让ALU处理; ALU接到控制单元的“开始”信号时就处理寄存器中的数据,并将结果暂时存放于累加器中;然后,这些数据可由累加器发送到内存中或用于另一步处理; ALU执行完操作后,控制单元的指令指针会递增指向下一条指令的内存地址,如此,便完成了一个指令周期。
5.计算思维
计算思维是运用计算机科学的基础概念进行问题求解、系统设计及人类行为理解等涵 盖计算机科学广度的一系列思维活动。 在解决实际问题时,要利用计算机高速的计算能力,需要考虑以下3个问题 哪些问题能够被计算 如何利用计算机系统实现计算 如何高效地实现计算
6.计算思维的主要思想
符号化思想 程序化思想 递归思想 抽象和分解思想
计算机之所以能解决复杂的问题,根本上是因为二进制数0和1能将各种运算转换成逻辑运算实现;问题的表示方式是无穷无尽的,用统一的符号化语言进行表示是解决问题的基础。 不管一个问题多么复杂,只要它是可计算的,那么只要将问题的解决过程设计成一系列基础的步骤,之后只需按顺序一步步执行这些基础步骤,就能使问题在整体上得到解决,这种解决问题的思想体现在计算机系统中就是程序化思想。对于计算机系统来说,只要能够完成每个基础步骤,以及实现一个控制基础步骤组合和执行次序的功能,就能解决非常复杂的问题。
递归思想是指一种计算模式调用这种计算模式本身,把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归思想最为重要的意义在于能够用有限的步骤来定义无限的功能。计算机科学中的许多重要思想如分治思想、回潮思想、迭代思想、动态规划思想等都与递归思想密切相关。 计算机系统通过抽象和分解思想来解决庞杂的任务或者设计巨大复杂的系统,通过抽象和分解思想我们可以将一一个大型问题拆分成若干子问题,也可以从整体上对众多烦琐的子问题进行抽象和概括以便于理解,使我们能在不必理解每一个细 节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信息。