基础课当然是很重要的,所以学习一下。
参考笔记地址:https://shimo.im/docs/PJAUY30F1uYksv0h/read
1、公元前 2500 年,算盘出现,为十进制,功能类似一个计数器。
2、公元前 2500 年-公元 1500 年:星盘、计算尺等依靠机械运动的计算设备出现
3、公元 1613 年:computer 的概念出现,当时指的是专门做计算的职业,
4、1694 年:步进计算器出现,是世界上第一台能自动完成加减乘除的计算器。
5、1694-1900 年:计算表兴起,类似于字典,可用于查找各种庞大的计算值。
6、1823 年:差分机的设想出现,可以做函数计算,但计划最后失败。
7、19 世纪中期:分析机的设想出现,设想存在可计算一切的通用计算机。
8、1890 年:打孔卡片制表机。原理:在纸上打孔→孔穿过针→针泡入汞→电路连通→齿轮使计数+1。
1、电子计算机元器件变化
继电器→真空管→晶体管 相当于开关,从机械式到真空电子管再到固体电子管
2、计算机的出现背景
20 世纪人口暴增,科学与工程进步迅速,航天计划成形。以上导致数据的复杂度急剧上升、计算量暴增,对于计算的自动化、高速有迫切的需求。
3、电子计算机的发展
1945 年 哈佛马克 1:使用继电器,用电磁效应,控制机械开关,缺点为有磨损和延迟。*最早还因为有虫子飞进去导致故障,引申出 bug=故障的意思。
1943 年 巨人 1 号:使用真空管(三极管),制造出世界上第一个可编程的计算机。
1946 年 ENIAC:第一个电子通用数值积分计算机。
1947 年 晶体管出现,使用的是固态的半导体材料,相对真空管更可靠。
1950s 空军 ANFSQ-7: 真空管到达计算极限。
1957 年 IBM 608: 第一个消费者可购买的晶体管计算机出现。
计算机为什么使用二进制
1、计算机的元器件晶体管只有 2 种状态,通电(1)&断电(0),用二进制可直接根据元器件的状态来设计计算机。
2、而且,数学中的“布尔代数”分支,可以用 True 和 False(可用 1 代表 True,0 代表 False)进行逻辑运算,代替实数进行计算。
3、计算的状态越多,信号越容易混淆,影响计算。对于当时每秒运算百万次以上的晶体管,信号混淆是特别让人头疼的的。
用晶体管实现与或非、异或门
抽象的好处
使得分工明确,不同职业的工程师各司其职,而不用担心其他细节。
1、二进制的原理,存储单元 MB/GB/TB 解释
1、计算机中的二进制表示:单个数字 1 或 0,1 位二进制数字命名为位(bit),也称 1 比特。
2、字节(byte)的概念:1byte=8bit,即 1byte 代表 8 位数字。最早期的电脑为八位的,即以八位为单位处理数据。为了方便,将八位数字命名为 1 字节(1byte).
3、十进制与二进制的区别:十进制有 10 个数字,0-9,逢 10 进 1(不存在 10 这个数字),则每向左进一位,数字大 10 倍。二进制有 2 个数字,0-1,逢 2 进 1,(不存在 2 这个数字),则每向左进一位,数字大 2 倍。
4、byte 在电脑中的单位换算:
1kb=2^10bit = 1024byte =1000b
1TB=1000GB
1GB=十亿字节=1000MB=10^6KB
5、32 位与 64 位电脑的区别
32 位的最大数为 43 亿左右 32 位能表示的数字:0——2的32次方-1,一共2的32次方个数64 位的最大数为 9.2*10^18
2、美国信息交换标准代码-ASCⅡ,用来表示字符
3、UNICODE,统一所有字符编码的标准
1 诞生背景:1992 诞生,随着计算机在亚洲兴起,需要解决 ASCⅡ不够表达所有语言的问题。为提高代码的互用性,而诞生的编码标准。
2 内容:UNICODE 为 17 组的 16 位数字,有超过 100 万个位置,可满足所有语言的字符需求。
1、什么是算术逻辑单元
1 命名:简称 ALU,Arithmetic&Logic Unit
2 组成:ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元(Arithmetic Unit 和 Logic Unit)
3 作用:计算机中负责运算的组件,处理数字/逻辑运算的最基本单元。
2、算术单元
包含半加器、全加器,由与或非以及异或门组成。
算术单元组成了各种带有进位和错位的加法器。
3、溢出
在存储空间有限的存储器中,无法存储超过位数的数字,发生超过现象就叫做溢出。
4、逻辑单元
比如与门或门非门、异或门
5、ALU的抽象
ALU让工程师不在考虑具体的实现方式,只关注输入输出以及标志位,就像一个大写的V
1、内存
随机存取存储器RAM,又叫做内存,只能在通电的情况下使用,这就导致了在断电时文档和游戏数据的丢失。
2、概念
1、锁存器:由各种门电路组成的,能够存储一位二进制位的器件。
2、寄存器:一组锁存器组成的器件,能够存储多位二进制数。
3、矩阵:按照行和列排列组合锁存器,组成了 以位址 来搜索数据的 存储空间。
4、内存(RAM):随机存取存储器,由一系列的矩阵以及电路组成的器件,可以根据地址来写入和读写。
1、概念梳理
CPU:中央处理单元,负责处理程序。通常由ALU、寄存器、控制单元和时钟组成,与RAM搭配,执行计算机程序。CPU和RAM之间通常用地址线、数据线以及读写指令线进行通信。
取指令—>解码—>执行阶段
1、缓存
为了提升RAM给CPU送数据的效率,在CPU内部设置了一小块内存,让RAM可以一次性传输一堆数据到CPU中。
空等的原因:从RAM传输到CPU需要时间(数据要通过总线、RAM通过地址找数据、配置以及输出数据也需要时间)
2、缓存同步
当CPU的缓存数据已满时,如果CPU仍然需要往缓存输入,那么缓存中与RAM不一样的数据(脏位)会优先传输回RAM,以免被覆盖造成错误。
早期用纸带打孔的方式进行编程
现代计算机的基础结构:
冯诺依曼计算机:一个处理器(ALU组成)+数据寄存器+指令寄存器+指令地址寄存+内存
伪代码-----汇编语言-----高级编程语言
图灵测试:机器人能够骗过人,无法分辨是否是计算机,则称计算机达到了智能程度。
1、API程序编程接口
2、集成开发环境IDE
3、调试DeBug
4、文档和注释
5、版本控制
6、beta版本
软件接近完成,但是还没有完全测试通过,让公众测试BUG的版本。
1、集成电路和仙童半导体
集成电路:将多个组件封装成一个新的独立组件就叫做集成电路IC,仙童半导体公司让集成电路变成了现实,发明了印刷电路板PCB,通过刻蚀金属线的方式将零件连接到一起。
2、光刻工艺
3、摩尔定律
每过两年,相同大小的集成电路,晶体管的数量翻倍,
4、进一步小型化会遇到的问题
1、由于光的波长的限制,精度已经到达极限。
2、量子隧穿效应:当晶体管非常小的时候,电极之间可能只距离几个电子,电子会跳过间隙,产生漏电问题。
1、操作系统OS
操作系统也是一个程序,但是具有操作硬件的权限,以及能够运行和管理其它程序。
2、虚拟内存
为了解决一个程序所占内存可能不连续的问题,操作系统将内存地址虚拟化,将不连续的映射成连续的给用户。
1、纸卡和纸带
2、磁芯、磁带、磁鼓、磁盘、软盘、光盘、固定硬盘SSD
1、无损压缩和有损压缩JPEG格式
纸带打孔------命令行界面
1、屏幕
阴极管映射CRT------液晶显示器LCD-----光笔
冷战和消费主义促进了集成电路的发展,带动了计算机的发展
1、LAN局域网
2、MAC媒体访问地址
1、局域网LAN-----广域网WAN
2、IP-互联网协议
3、UDP-用户数据报协议
4、校验和
5、TCP - 传输控制协议
6、DNS - 域名系统
1、万维网在互联网上运行,它的基本单位是页面
2、点超链接可以去到另一个页面,文字超链接又叫超文本
3、URL - 统一资源定位器:网页的唯一网址
4、HTTP - 超文本传输协议
5、HTML - 超文本标记语言
6、网络中立性:平等地对待每个数据包
1、密钥交换
1、决策边界
2、混淆矩阵
3、决策树
4、支持向量机:本质上是用任意线段来切分决策空间,不一定是直线。
5、强AI和弱AI:通用的,和人一样智能的AI叫做强AI,目前没有人能做到。
1、核、过滤器:用来检测垂直边缘的算法的数学符号
2、卷积
识别人说的话,原理是快速傅里叶变换