[TOC]
# 计算机简史
## 常识知识
* **计算机的顶级奖项**:图灵奖
* **对信息科学做出突出贡献的大神**:图灵(所以才有个奖),冯 · 诺伊曼
* **中国获图灵奖的大神**:姚期智(清华就有姚班,就是以他的名字命名的)
* **世界第一台电子计算机**:埃尼阿克(𝐸𝑁𝐼𝐴𝐶),于1946年2月14日在美国宾夕法尼亚大学诞生。又被叫做电子管计算机。
* 英国著名诗人拜伦的女儿Ada Lovelace(爱达).由于她在程序设计上的开创性工作,Ada Lovelace被称为世界上”第一位程序员”。“世界上第一位软件工程师”。
## 计算机经历了四个发展阶段
1. 电子管数字机(1946—1958年)
硬件方面,逻辑元件采用的是真空电子管,外存储器采用的是磁带。特点是体积大、功耗高、可靠性差。速度慢、价格昂贵,但为以后的计算机发展奠定了基础。
2. 晶体管数字机(1958—1964年)
应用领域以科学计算和事务处理为主,并开始进入工业控制领域。特点是体积缩小、能耗降低、可靠性提高、运算速度提高、性能比第1代计算机有很大的提高。
3. 集成电路数字机(1964—1970年)
硬件方面采用中、小规模集成电路。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。特点是速度更快,而且可靠性有了显著提高,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。
4. 大规模集成电路机(1970年至今)
硬件方面采用大规模和[超大规模集成电路]。软件方面出现了数据库管理系统等。特点是1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。应用领域从科学计算、事务管理、过程控制逐步走向家庭。
> **微型计算机的问世是由于(超)大规模集成电路机的出现。**
## 计算机应用
1. 科学计算(数值计算)。
2. 数据处理(信息处理)。
3. 人工智能。
4. 自动控制。
5. 计算机辅助设计和制造:
> CAI (计算机辅助教学)
> CAM (计算机辅助制造)
> CAT(计算机辅助测试)
> CAD(计算机辅助设计)
> CAE (计算机辅助教育)
> CIMS(计算机集成制造系统)
## 保护知识产权
《计算机软件保护条例》最早是1991年6月4日国务院发布的<计算机软件保护条例>,现已废止。现公布《计算机软件保护条例》,自2002年1月1日起实施 。
第二章 软件著作权
第八条 软件著作权人享有下列各项权利:
(一)发表权 (二)署名权
(三)修改权 (四)复制权;
(五)发行权 (六)出租权
(七)信息网络传播权 (八)翻译权
(九)应当由软件著作权人享有的其他权利。
## 计算机病毒
计算机病毒是一种功能较特殊的计算机程序,计算机病毒的特征可以归纳为下面两点:
1. 能够将自身复制到其他程序中。
2. 不独立以文件形式存在,仅附加在别的程序上。
失去这两个特征中的任何一个,都不成其为病毒。
# 计算机系统组成
:-: ![](https://img.kancloud.cn/11/48/1148d0ee37385c6b536077651cb8b085_518x383.png)
## 硬件设备
* 硬件组成:
1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
4. 输入设备(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
5. 输出设备(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
* CPU及存储:
CPU(中央处理器)=运算器+控制器+寄存器
存储器=内存储器+外存储器
>[success] 是计算机的核心部件(指挥系统)
> 直接决定计算机的运行速度。
如:计算机的配置:
“Intel奔腾IV2.8GHz/512M/80GB/50X”
每秒运算次数是: `$ 2.8*2^{10} *2^{10}* 2^{10} $` 次
* BIOS
英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
* 随机存储器RAM的“随机”指“随时访问”
>[success] 断电后可以保存数据:硬盘,ROM
>[success] 断电后不可以保存数据:显存(显卡内存),RAM,CPU
> 平时说的内存就是RAM
**各存储设备的数据传输速度对比:寄存器 > 高速缓存器 > 内存速度 > 外存速度**
## 计算机的三总线结构
总线是一组导线、是公共通路,微型计算机中各个组成部件之间的信息传输都是通过它们来实现的。
:-: ![](http://cndpic.dodoke.com/170d6f1cf1b8afcb4724956be73ce718)
* 地址总线(AB)是单向总线,用以传送CPU向外设或存储器发出的地址信息。
* 数据总线(DB)是双向总线,用以CPU与内存或接口之间传输数据信息。
* 控制总线(CB)是双向总线,有的作为输出,有的作为输入,用以CPU与内存或I/O接口之间传送控制信息。
**分别传送地址信号、数据信号和控制信号**
中央处理器(CPU)能访问的最大存储器容量取决于地址总线
地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。如果地址总线是32位,则理论上最大可寻址的内存空间为4GB
## 软件系统
* **系统软件**
DOS、OS/2、windows95、windows98、windows 2000、xp、Vista、win7、win8、MAC OS等
windows Server、windows NT、unix、linux、Netware
* **应用软件**
office(word,powerpoint,excel)、3Dmax、QQ, photoshop等
* **计算机语言**
* 机器语言
* 汇编语言
* 高级语言:面向对象和面向过程
* **面向对象的高级语言**:
C++、Java、C#、Python、JavaScript、Go等。
* **面向过程的高级语言**:
C、Fortran语言。
# 进制转换
## 将二进制、八进制、十六进制转换为十进制
二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。
假设当前数字是 N 进制,那么:
* 对于整数部分,从右往左看,第 i 位的位权等于`$ N^{i-1} $`
* 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为`$ N^{-j} $`。
* 二进制:1001 = 1×`$ 2^3 $` + 0×`$ 2^2 $` + 0×`$ 2^1 $` + 1×`$ 2^0 $` = 8 + 0 + 0 + 1 = 9(十进制)
* 二进制:101.1001 = 1×`$ 2^2 $` + 0×`$ 2^1 $` + 1×`$ 2^0 $` + 1×`$ 2^{-1} $` + 0×`$ 2^{-2} $` + 0×`$ 2^{-3} $` + 1×`$ 2^{-4} $` = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)
* 八进制:302 = 3×`$ 8^2 $` + 0×`$ 8^1 $` + 2×`$ 8^0 $` = 192 + 0 + 2 = 194(十进制)
* 八进制:302.46 = 3×`$ 8^2 $` + 0×`$ 8^1 $` + 2×`$ 8^0 $` + 4×`$ 8^{-1} $` + 6×`$ 8^{-2} $` = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)
* 十六进制:EA7 = 14×`$ 16^2 $` + 10×`$ 16^1 $` + 7×`$ 16^0 $` = 3751(十进制)
## 将十进制转换为二进制、八进制、十六进制
* **整数部分**
十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是
* 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
* 保留余数,用商继续除以 N,又得到一个新的商和余数;
* 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
* ……
* 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。
把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。
下图演示了将十进制数字 42 转换成二进制的过程:
:-: ![](http://cndpic.dodoke.com/06b1083bc661837b013f198e8011a924)
从图中得知,十进制数字 42 转换成二进制的结果为 101010。
* **小数部分**
十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:
* 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
* 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
* 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
* ……
* 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。
把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。
下图演示了将十进制小数 0.6875 转换成二进制小数的过程:
:-: ![](http://cndpic.dodoke.com/b48a4ebb4b2359972803bb65dbf5a47a)
从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。
>[danger]如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:十进制数字 42.6875 转换成二进制的结果为 101010.1011。
下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:
:-: ![](http://cndpic.dodoke.com/969e2e4147c457127382ce54e0862373)
>[danger]注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:
>* 十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;
>* 十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;
>* 十进制 0.625 对应的二进制为 0.101,是一个有限小数。
## 二进制和八进制、十六进制的转换
* 二进制整数和八进制整数之间的转换
二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:
:-: ![](http://cndpic.dodoke.com/371242900a6f4efecccb2ad84e4ae68e)
从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。
八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:
:-: ![](http://cndpic.dodoke.com/fcb624bd5221412b29b132edc86623e0)
从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。
* 二进制整数和十六进制整数之间的转换
二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:
:-: ![](http://cndpic.dodoke.com/f5f25a3166eb7a528866bdd8cb84b382)
从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。
十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:
:-: ![](http://cndpic.dodoke.com/34bdab7525dce598f0ae213cee255266)
从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。
## 原码反码补码的相互转换
>[success] 正数的原码,反码,补码都是相同的。
* 负数原码和反码的相互转化
负数原码转化为反码:**符号位不变,数值位按位取反**。
~~~
原码 1100 0010
反码 1011 1101
~~~
负数反码转化为原码:**符号位不变,数值位按位取反**。
~~~
反码 1011 1101
原码 1100 0010
~~~
* 负数原码和补码的相互转化
负数原码转化为补码:**符号位不变,数值位按位取反,末尾加一。**
~~~
原码 1100 0010
反码 1011 1101 //符号位不变,数值位按位取反
补码 1011 1110 //末尾加1
~~~
负数补码转化为原码:符号位不变,数值位按位取反,末尾加1。
~~~
补码 1011 1110
1100 0001 //符号位不变,数值位按位取反
原码 1100 0010 //末尾加1
~~~
* 负数反码和补码的相互转化
**负数反码转化为补码:末尾加1。**
~~~
反码 1011 1101
补码 1011 1110
~~~
负数补码转化为反码:末尾减1(注意,此处的反码是指原码的反码)。
~~~
补码 1011 1110
原码的反码 1011 1101
//减法 借位
~~~
# 数据存储
## 存储单位
**位(bit,缩写为b)**:度量数据的**最小单位**,表示一位二进制信息。
**字节(Byte,缩写为B)**:一个字节由八位二进制数字组成(l byte=8bit)。字节是信息存储中最常用的**基本单位**。
* 计算机的存储单位有以下几种:
计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示,它们之间的关系是:
**KB** 1KB=1024B
**MB** 1MB=1024KB
**GB** 1GB=1024MB
**TB** 1TB=1024GB
**PB** 1PB=1024TB
**EB** 1EB=1024PB
**机器字(word):字是位的组合,并作为一个独立的信息单位处理。字又称为计算机字,它取决于机器的类型、字长以及使用者的要求。常用的固定字长有8位、16位、32位等。**
## 非数值信息的表示
### 西文字符编码
**ASCII码 —“美国信息交换标准代码”的简称**。是基于拉丁字母的一套电脑编码系统。是最通用的信息交换标准。一共定义了**128**个字符。ASCII码包括0~9十个数字,大小写英文字母及专用符号等95种可打印字符,还有33种控制字符(如回车、换行等)。一个字符的ASCII码通常占一个字节,用七位二进制数编码组成,所以ASCII码最多可表示128个不同的符号。最高位作为校验码,以便提高字符信息传输的可靠性。
数字和字母的ASCII码按照数字递增顺序或字典顺序排列排列,大写字母和小写字母的ASCII码是不同的。
> 这里不赋ASCII码的转换表。只给出几种比较常用的转换:
> 1. 字符0→48
> 2. 大写字母A→65
> 3. 小写字母a→97
> 4. 空格→32
> 5. 换行→13
### 中文信息编码
目前的汉字编码方案有二字节、三字节甚至四字节的。下面我们主要介绍“国家标准信息交换用汉字编码”(CB2312-80标淮),以下简称国标码。
国际码是二字节码,用二个七位二进制数编码表示一个汉字。目前国标码收人6763个汉字,其中一级汉字(最常用)3755个,二级汉字3008个,另外还包括682个西文字符、图符。 在计算机内部,汉字编码和西文编码是共存的。区分的方法之一是对于二字节的国标码,将二个字节的最高位都置成1,而ASCIl码所用字节最高位保持0,然后由软件(或硬件)根据字节最高位来作出判断。
# 多媒体技术
## 介绍
* 多媒体技术(Multimedia Technology)是利用计算机对文本、图形、图像、声音、动画、视频等多种信息综合处理、建立逻辑关系和人机交互作用的技术。
* 媒体(medium)在计算机行业里,媒体有两种含义:其一是指传播信息的载体,如语言、文字、图像、视频、音频等等;其二是指存贮信息的载体,如ROM、 RAM、磁带、磁盘、光盘等,目前,主要的载体有CD-ROM、VCD、网页等。
* 多媒体技术多媒体技术涉及面相当广泛,主要包括:
* 音频技术:音频采样、压缩、合成及处理、语音识别等。
* 视频技术:视频数字化及处理。
* 图像技术:图像处理、图像、图形动态生成。
* 图像压缩技术:图像压缩、动态视频压缩。
* 通信技术:语音、视频、图像的传输。
* 标准化:多媒体标准化。
## 多媒体数据压缩技术
* 多媒体数据压缩方法分类数据的压缩实际上是一个编码过程,即把原始的数据进行编码压缩。数据的解压缩是数据压缩的逆过程,即把压缩的编码还原为原始数据。因此数据压缩方法也称为编码方法。
* 按照压缩方法是否产生失真分类根据解码后数据与原始数据是否完全一致进行分类,压缩方法可被分为有损编码和无损编码两大类。
* 有损压缩法会压缩了熵,会减少信息量,而损失的信息是不能再恢复的,因此这种压缩法是不可逆的。JPEG是目前图像压缩比最高,效果较好的一种有损压缩格式。
* 无损压缩是不会产生失真。无损编码是泛指那种不考虑被压缩信息性质和压缩技术。在多媒体技术中一般用于文本、数据的压缩,它能保证百分之百地恢复原始数据。但这种方法压缩比较低,如LZW编码、霍夫曼(Huffman)编码的压缩比一般在2:1至5:1之间。
## 图像图形相关名词
* **位图**:由一点一点的像素点排成矩阵组成的,其中每一个像素点都可以是任意颜色。
* **向量图**:用向量代表图中所表现的元素。
* **像素** :图形的最小组成单位
* **真彩色**:人的眼睛能够分辨出的颜色大约有1万6千多种,为了能表现出这么多种色彩,我们得用24bit(`$ 2^{24}=16 $`M)来描述一个像素的颜色,这种显示模式就称为真彩色。
## 常用色彩模式
* **RGB模式**:分别代表红、绿、蓝三种颜色,计算机以RGB模式来定义计算机屏幕上的颜色。通过混色原理,不同比例的RGB色彩可调和出无穷多种颜色。
* **HSB模式**:分别表示色调(hue)、饱和度(saturation)、亮度(bright)。不同的色调代表不同的颜色;饱和度指的是某区域中,该颜色量的多少,饱和度越低,该区域看起来就越灰暗;亮度则是指颜色的亮、暗,极亮成白色,极暗则成黑色。相对于RGB模式,HSB模式设定颜色的方式可产生更好的视觉效果。
# 计算机网络
## 基本概念
**网络的定义**:计算机网络是由地理位置分散的、具有独立功能的多个计算机系统,经通讯设备和线路互相连接,并配以相应的网络软件,以实现通信和资源共享的系统。
**网络的功能**:数据通信、资源共享、协同工作。
## 计算机网络的拓扑结构
网络中各个站点相互连接的方法和形式称之为网络拓扑。
:-: ![](http://cndpic.dodoke.com/8e70a7492a2e7cf25599ec5e6db34d08)
## 计算机网络的物理组成
* 网络中心服务器 、网络工作站 (客户机)
* 共享的外部设备
* 网卡
* 通信线路(双绞线、同轴电缆和光缆、无线传输介质(如微波、红外线和激光等))
* 局部网络通信设备(中继器、集线器 、交换机)
* 网络互连设备 (网桥、路由器和网关 )
* 网络软件 (对等式网络操作系统 、服务器上的网络操作系统)
## 网络的分类
* 广域网WAN(Wide Area Network):是跨地域性的网络系统,大多数WAN都是网络互连而成的,如著名的Internet网络。
* 局域网LAN(Local Area Network):一般由一个部门或公司组建,地理范围仅在建筑楼内或单位内部,10公里范围内。
* 城域网MAN(metropolitan area network):几十公里内,覆盖一个城市的网络,例如教育城域网。
## 计算机网络体系结构
国际标准化组织(ISO)提出的开放系统互联参考模型(OSI)已成为网络体系结构的标准。
* 在这些层中,除了最高的第7层没有需要服务的上一层、最低的第1层没有可利用服务的下一层外,其它的每一层都建立在下一层的基础上,利用下一层来实现自己的功能,并向上一级提供服务。
* 主机A与主机B进行通信时,通信协议是在对等层之间进行的。其中,物理层与物理层之间的通信协议是直接的,其他对等层之间的通信协议都是间接的。
:-: ![](http://cndpic.dodoke.com/335c17ae4385123dfde0476b083bc0ac)
**TCP/IP协议与OSI模型对比**
:-: ![](http://cndpic.dodoke.com/7217f59ffba59109d485c8a4dacfc26a)
## 重要概念
* TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议 。
* TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是**网络层**。
* 超文本传输协议(HTTP),文件传输协议(FTP),Telnet(远程登录)和简单邮件传输协议(SMTP:发送收电子邮件 ,pop3:接收电子邮件 ) 。
* 常见的邮件传输服务器使用**SMTP**协议发送邮件。
* 一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是**调制解调器**。
## Internet 网络地址 (IP地址)
:-: ![](http://cndpic.dodoke.com/bc392e6dfaec3c68e9db12a02ca92acf)
**A类网络为大型网络;B类网络为中型网络;C类网络为小型网络。**这三类网络的地址特征为
1. A类网络以0开头,网络号码是8位,主机号码是24位
2. B类网络以10开头,网络号码是16位,主机号码是16位
3. C类网络以110开头,C类网络的网络号码是24位,主机号码是8位
4. D类地址以1110开头,E类地址以11110开头