计算机科学
第一课:计算机早期历史
1、计算机技术的影响——进入信息时代
- 出现自动化农业设备与医疗设备
- 全球通信和全球教育机会变得普遍
- 出现意想不到的虚拟现实/无人驾驶/人工智能等新领域
2、计算机的实质:
极其简单的组件,通过一层层的抽象,来做出复杂的操作。
计算机中的很多东西,底层其实都很简单,让人难以理解的,是一层层精妙的抽象。像一个越来越小的俄罗斯套娃。
随着知识的增长和新工具的诞生,人工劳力会越来越少
3、关于计算的历史:
- 公元前2500年,算盘出现,为十进制,功能类似一个计数器。
- 公元前2500年-公元1500年:星盘、计算尺等依靠机械运动的计算设备出现
- 公元1613年:computer的概念出现,当时指的是专门做计算的职业,
- 1694年:步进计算器出现,是世界上第一台能自动完成加减乘除的计算器。
- 1694-1900年:计算表兴起,类似于字典,可用于查找各种庞大的计算值。
- 1823年:差分机的设想出现,可以做函数计算,但计划最后失败。
- 19世纪中期:分析机的设想出现,设想存在可计算一切的通用计算机。
- 1890年:打孔卡片制表机。原理:在纸上打孔→孔穿过针→针泡入汞→电路连通→齿轮使计数+1。
第二课:电子计算机的发展史
1.电子计算机元器件变化
继电器 真空管 晶体管
计算机的出现背景
20世纪人口暴增,科学与工程进步迅速,航天计划成形。以上导致数据的复杂度急剧上升、计算量暴增,对于计算的自动化、高速有迫切的需求。
电子计算机的发展
1945年,哈弗马克1:使用继电器,用电磁效应,控制机械开关,缺点为有磨损和延迟。
最早因为有虫子飞进继电器,导致故障,从而引申出bug=故障的意思
1943年 巨人1号:使用真空管(三极管),制造出世界上第一个可编程的计算机。
1946年ENIAC:第一个电子数值积分计算机,第一个真正的通用,可编程,电子计算机
1950年 空军ABFSQ-7真空管计算机都达到了极限.
1957年 IBM 608: 第一个消费者可购买的晶体管计算机出现
第三课:布尔逻辑与逻辑门
1、计算机为什么使用二进制:
- 计算机的元器件晶体管只有 2 种状态,通电(1)&断电(0),用二进制可直接根据元器件的状态来设计计算机。
- 而且,数学中的“布尔代数”分支,可以用 True 和 False(可用 1 代表 True,0 代表 False)进行逻辑运算,代替实数进行计算。
- 计算的状态越多,信号越容易混淆,影响计算。对于当时每秒运算百万次以上的晶体管,信号混淆是特别让人头疼的的。
2、布尔代数&布尔代数在计算机中的实现
- 变量:没有常数,仅 True 和 False 这两个变量。
- 三个基本操作:NOT/AND/OR。
- 为什么称之为“门”:控制电流流过的路径
NOT 操作
命名:称为 NOT 门/非门。
2 作用:将输入布尔值反转。输入的 True 或 False,输出为 False 或 True。
3 晶体管的实现方式:
半导体通电 True,则线路接地,无输出电流,为 False。
半导体不通电 False,则输出电流从右边输出,为 True
)AND 操作
1 命名:AND 门/与门
2 作用:由 2 个输入控制输出,仅当 2 个输入 input1 和 input2 都为 True 时,输出才为 True,2 个输入的其余情况,输出均为 False。*可以理解为,2 句话(输入)完全没有假的,整件事(输出)才是真的。
3 用晶体管实现的方式:
串联两个晶体管,仅当 2 个晶体管都通电,输出才有电流(True)
3)OR 操作
1 命名:OR 门/或门
2 作用:由 2 个输入控制输出,只要其中一个输入为 True,则输出 True。
3 用晶体管实现的方式:
使用 2 个晶体管,将它们并联到电路中,只要有一个晶体管通电,则输出有电流(True)。
3、特殊的逻辑运算——异或
1 命名:XOR 门/异或门
2 作用:2 个输入控制一个输出。当 2 个输入均为 True 时,输出 False,其余情况与 OR 门相同。
3 图示:
先用一个 OR 门,将其与 AND 门并联,AND 门与 NOT 门串联,最后让 NOT 与 AND 门并联,获得输出。
个人理解:or与xor相似,为了实现他的特点,需要其将与and共同连接同一个门,两个输入为true,or返回true,and返回true,将and与not连,反串,共同连接在and上,实现xor
思考为什么不用or,代替第一个and,因为这样虽然满足第一行xor的特点,却不能满足其他的
4、逻辑门的符号表示
1 作用:将逻辑门简化,将逻辑门用于构建更大的组件,而不至于太复杂。
2 图示:
非门:用三角形+圆圈表示
与门:用 D 型图案表示
或门:用类似 D 向右弯曲的图案表示
异或门:用或门+一个圆弧表示
5、抽象的好处
使得分工明确,不同职业的工程师各司其职,而不用担心其他细节。
第四课:二进制
1、二进制的原理,存储单元 MB/GB/TB 解释
0 计算机中的二进制表示:
单个数字 1 或 0,1 位二进制数字命名为位(bit),也称 1 比特。
1 字节(byte)的概念:
1byte=8bit,即 1byte 代表 8 位数字。最早期的电脑为八位的,即以八位为单位处理数据。为了方便,将八位数字命名为 1 字节(1byte).
2 十进制与二进制的区别:
十进制有 10 个数字,0-9,逢 10 进 1(不存在 10 这个数字),则每向左进一位,数字大 10 倍。
二进制有 2 个数字,0-1,逢 2 进 1,(不存在 2 这个数字),则每向左进一位,数字大 2 倍。
2 如何进行二进制与十进制联系起来:
- 将十进制与二进制的位数提取出来,编上单位:
eg.二进制的 1011=12^0 + 12^1 + 02^2 + 12^3= 11(从右往左数)
eg.十进制的 1045= 110^3 + 010^2 + 410^1 + 510^0
4 二进制的运算:
相同的位数相加,逢 2 进 1
5 byte 在电脑中的单位换算:
1kb=2^10bit = 1024byte =1000b
1TB=1000GB
1GB=十亿字节=1000MB=10^6KB
6 32 位与 64 位电脑的区别
32 位的最大数为 43 亿左右 32 位能表示的数字:0——2的32次方-1,一共2的32次方个数
64 位的最大数为 9.2*10^18
2、正数、负数、正数、浮点数的表示
1)计算机中表示数字的方法
1 整数:
表示方法:
第 1 位:表示正负 1 是负,0 是正(补码)
其余 31 位/63 位: 表示实数
2 浮点数(Floating Point Numbers):
定义:小数点可在数字间浮动的数(非整数)
表示方法:IEEE 754 标准下
用类似科学计数法的方式,存储十进制数值
浮点数=有效位数*指数
32 位数字中:第 1 位表示正负,第 2-9 位存指数。剩下 23 位存有效位数
eg.625.9=0.6259(有效位数)*10^3(指数)
3、美国信息交换标准代码-ASCⅡ,用来表示字符
1 全称:美国信息交换标准代码
2 作用:用数字给英文字母及符号编号
3 内容:7 位代码,可存放 128 个不同的值。
4、UNICODE,统一所有字符编码的标准
1 诞生背景:1992 诞生,随着计算机在亚洲兴起,需要解决 ASCⅡ不够表达所有语言的问题。
为提高代码的互用性,而诞生的编码标准。
2 内容:UNICODE 为 17 组的 16 位数字,有超过 100 万个位置,可满足所有语言的字符需求。