深入理解电子计算机(电脑)的发展与运算过程
内容转载:东耳果果作者 互相学习交流
1.计算机发展
1.1 编码是什么?
•一种用来在机器和人之间传递信息的方式
•编码就是交流
1.2 生活中的编码方式:
•声音
对任何能听见我们的声音并理解我们所说的语言的人来说,我们发出的声音所形成的词语是一种可识别的编码.
•书面语
•手语
•聋哑人
1.3 为什么需要各种不同的编码?
我们使用各种不同的编码来为我们自己的交流服务,因为有些编码有时比其他编码更便捷.
如果一种编码可以用在其他编程无法取代的地方,那么它就是一种有用的编码.
1.4 那么人类如何与计算机沟通?
不同类型的信息需要它们各自的编码.
1.5 如何增加沟通效率?
缩减编码的数字为2.
为了使编码发送的速度最快,你可以把
•莫尔斯编码口语版把讲话内容缩减到只剩下2个声音.
•文字简化成点和划
事实上,两个不同的事物,只要经过适当的组合,就可以表示所有类型的信息。
2.编码与组合
2.1 发展史:
莫尔斯编码其实是伴随着电报机的问世而被发明的。
正如通过研究莫尔斯码我们可以很方便地理解编码的本质一样,通过电报机来了解计算机硬件也是个不错的途径。
2.2 莫尔斯码可以表示的字数:
点和划的组合可以表示任何你想要的任意数目的码字。
2.3 二进制码:
莫尔斯码也被称作二进制码(Binary Code),因为这种编码的组成元素只有两个————“点”和“划”。
类似硬币,只有正反面。
二元对象(like硬币)和二进制码(like莫尔斯码)常常使用2的乘方来进行描述
2.4 组合分析
关于二进制编码的分析工作,其实是数学的一个分支,称作“组合学”或“组合分析”。
传统意义上来说,因为组合分析涉及类似像扔硬币,掷骰子等需要对其组合数目进行推算的问题,所以它经常被应用到概率和统计学中。
3.布莱叶盲文与二进制码
3.1 布莱叶盲文是什么?
3.2 布莱叶盲文特点?
数字标示符和取消“数字标示状态”的字母标示符,改变了后面编码的意义(字母->数字,数字->字母)。
这些编码通常被称为“优先码”(precedence codes)或者”换挡码“(shift codes)。它们改变作用域内编码的含义,直到作用域结束
代码大全2 里面有提到作用域,作用域就像变量在程序中的知名度
逃逸码(escape codes) :让你“逃离”对编码串单调的,一成不变的解析,而转入一种新的解析方式中。
3.3 盲文与Binary Code有啥联系?
盲文中的点码都是二进制的。一个单独的点不是平的就是凸起的。
4.手电筒的剖析
4.1 一些原理:
•研究电流工作原理的、最主流的科学理论叫做“电子理论”,这套理论认为电流是由电子的运动而产生的。
•电流产生的原因:一个原子中电子的数目一般情况下与质子数目相同。但在某些情况下,电子可能从原子中脱离。
•电路中,某原子所含有的一个电子逃逸到它相邻的下一个原子中,与此同时,这个原子又从相邻的上一个原子中获取一个电子,而失去电子的原子又会从与其相邻的一个原子获得电子,如此循环,电路中的电子不断地从一个原子移动到下一个原子,就形成了电流。
4.2 手电筒与二进制的联系?
•开关:闭合&断开
•电流:有&无
•灯泡:亮&不亮
就像二进制码一样,没有介于两者之间的状态。
二进制码与电气电路之间有很大的相似性。
5.绕过拐角的通信
5.1 与邻居的微型发报系统:
使用导线,我们不仅可以构建出一个可以绕过拐角的、能够在视角之外的发报系统,而且无需受距离的限制。我们可以跨越成千上百英里来进行通信,只需铺足够长的线路即可。
5.2 现实难题:如何做出很长的导线?
在150年前,人们在铺设第一个跨越美洲和欧洲的电报系统时,这些都是面临的问题。如果忽视了线路直径和高电压的因素,电报线路将完全无法持续工作。
根据设计方案,系统距离跨度的极限是200英里。这个长度与纽约和加利福尼亚数千里的距离相比,还是有很大差距的。
茨威格《人类群星闪耀时》里面铺海底电缆那个?
这个难题的解决方案——不是给手电筒,而是给“滴滴答答”的近代电报系统的————尽管它只不过是个很简陋的装置,但是正是基于这个装置,整个计算机系统才被构建出来。
6.电报器与继电器
6.1 通讯的历史背景:
19世纪早期,人们可以进行即时通讯或远距离通信,但是不能同时做到这两点。即时通讯受声音传播距离的限制,或者受视野的限制。使用信件可以进行更远距离的通信,但是寄信耗费的时间太多,并且需要马匹、火车或轮船。
6.2 怎么提高远距离通讯的速度?
使用电报(telegraph,远距离书写)
6.2.1 电报机的原理:
在线路的这一端采取一些措施,使线路的另一端发送某种变化。
理论基础:
•利用电磁现象。
•电磁铁是电报机的基础。
在线路的一段闭合或断开开关,可以使线路另一端的电磁铁有所动作。
6.2.2 传统电报机中发送信息的电键:
6.2.3 传统电报机中的接收器:
6.2.4 电报机模型:
电报机的发明标志着现代通信的开始。
人们第一次能够在视线或者听力之外的距离范围进行实时交流,而且信息传递速度很快。
更耐人寻味的是,这个发明使用了二进制码。
但是在后来的电子和无线通信(包括电话、无线电、电视)所使用的通信模式中,二进制码被废弃了,
直到后来它又被应用在了电脑、光盘、数字影碟、数字卫星电视广播和高清电视上。
6.3 怎么解决长导线带来的大电阻的问题?
设置一个中继系统。
6.3.1 中继系统原始模型:
6.3.2 继电器:
继电器是一个意义非凡的设备。
它是一个可由电流控制的开关。
实际上,使用它,甚至可以装配好一台近乎完整的计算机来~
6.3.3 中继系统最终模型:
在使用继电器之前还要学会如何计数。
7.我们的十个数字
语言只不过是一种编码。
数字似乎并不是那么容易随文化的不同而改变。
数字是我们平常所能接触到的一种最抽象的编码。
十进制系统:
大多数文明都是建立在以10为基数的数字系统上的(有时候是以5为基数)
在这个意义上,以10为基数或使用十进制数字系统完全是随意的。
如今我们所用的数字系统通常被称为阿拉伯数字,也可以称为印度-阿拉伯数字系统。
阿拉伯数字系统的特点
•数字和位置有关:一个数字的位置不同,其代表数量也不同。
•没有代表10的专门符号
•多了新符号“0”
十进制计数系统易于计数,但是不适用于每种情况,比如对卡通人物没有任何意义。
8.十的替代品
8.1 八进制系统:
8.2 四进制系统:
8.3 二进制系统:
特点:
•二进制最大的问题就是数字用完得很快。
•二进制数的长度增长得很快而非数值增大得快。
通过将数字系统减少至只有0和1两个数字的二进制数字系统,已经是最简单的数字系统了。
二进制数字系统在算术与电子技术之间搭起了一座桥梁。
•电线:有电则1,无电则0
二进制数与计算机之间有着紧密的联系。
9.二进制数:
你可以选择很多方法来表示“是”或者“不是”。
不需要用一句话、一个单词甚至一个字母来表达。
你需要的是一个比特,也就是只需要一个0或1即可。
就如前面提到的,十进制与其他数字系统相比并没有什么不同,只是我们通过使用它来计数。
但是,二进制系统有特殊性:
•它是人们所能得到的最简单的数字系统
9.1 bit的意义:
本义:
•bit(比特)代表binary digit(二元数字)
一般的意义:
•“一小部分,程度很低或者数量很少”
1bit ———— 一个二进制数字位 ———— 确实是一个非常小的量。
在计算机时代里的意义:
•bit被看做是组成信息块的基本单位
9.2 为什么要用二进制数来传达信息?
二进制数不是传达信息的唯一方法。字母、单词、莫尔斯码、布莱叶盲文和十进制数均可以。
关键:
•bit所传递的信息量极少
•1bit 是可能存在的最小的信息量,任何低于1bit内容都根本算不上是信息。
信息是指多个可能性中的一种。
所有可以被转换成对两种或多种可能性的选择的信息,都可以用比特来表示。
利用二进制表示信息的一个额外的好处:
•我们可以清楚地知道我们是否已经想到了所有的可能性
9.3 bit在日常的体现:
通用产品代码(UPC,Universal Product Code):
整个UPC只不过是一串95位二进制数。
9.4 bit的总结:
bit可以表示文字、图片、声音、音乐、电影,产品编码、胶片速度、影评结果、英国军队的入侵,以及心爱之人的意图。
但是,从根本来说,bit是数字。
在用Bit表示其他信息的时候,我们所要做的就是计算有多少种可能性。
这决定了我们需要的比特位数,以便每种可能性都可以分配到一个编号。
bit在逻辑学中也很重要。
逻辑学是哲学和数学的奇特融合,其主要目的就是确定某个陈述是真(1)还是假(0)。
10.逻辑与开关
10.1 布尔代数:
对于古希腊人而言,逻辑是追求真理的过程中使用的一种分析方法,是一种哲学形式.
而布尔认为可以找到一种数学形式来描述逻辑,因此发明了布尔代数.
布尔把代数从数的概念中抽离出来使其更加抽象
在布尔代数中,操作数不是数字而是类(class)
一个类就是一个事物的群体,后来也被称为集合(set)
10.1.1 布尔代数的符号:
+: 表示两个集合的并集
x : 表示两个集合的交集
1 : 全集
0 : 空集
10.1.2 布尔代数与传统代数的最大区别:
F x F = F
•布尔代数:
母猫和母猫的交集依然是母猫
•传统代数:
该式子不成立
10.2 布尔代数与电路的联系:
布尔代数可以用开关,导线和灯泡组成的电路来实现.
10.2.1.AND运算---串联电路
10.2.2.OR运算---并联电路:
10.3 历史背景:
在19世纪,没有人将布尔代数中的AND和OR同线路中的开关串联及并联关联到一起.
甚至连计算机革命的偶像式人物查尔斯-巴贝奇也没有,他与布尔处在同一时代并且了解布尔的工作.巴贝奇先设计了差分机和分析引擎,这些在一个世纪之后都被看做是现代计算机的前身.
其实可以根据一台电报器来创建计算机,而非使用齿轮和杠杆来实现计算.
11.门
继电器像开关一样,可以串联或并联在电路中执行简单的逻辑任务.
这种继电器的组合叫做逻辑门(logic gate).
逻辑门:
逻辑门的工作方式是什么?
让电流通过或者阻止电流通过.
布尔代数与电路的关系:
香农清晰阐述了: 电子工程师可以运用布尔代数的所有工具去设计开关电路.如果你简化了一个描述电路的布尔表达式,那么你也可以简化相应的电路.
每个开关都是一个二进制数.
继电器:
•继电器是什么?
继电器像开关一样,可以串联或并联在电路中执行简单的逻辑任务.这种继电器的组合叫做逻辑门(logic gate)
•继电器的优点:
继电器可以被其他继电器所控制,而不必由人工控制.
连接继电器是建立逻辑门的关键.
四种基本逻辑门
1.与门 AND:
两个继电器的串联被称为一个'与门'.
•电路:
•符号:
三输入端与门:
3个继电器的串联---三输入端与门
•电路:
•符号:
2.或门 OR :
2个继电器的并联---或门
任何一个继电器有电压都可以点亮灯泡.
•电路:
•符号:
3. 或非门 NOR:
结果与或门相反
•符号:
•输出表:
全0为1,其余为0
4. 与非门 NAND:
和与门相反
•符号:
•输出表:
反向器(inverter):
开关闭合,灯泡就熄灭.
•电路:
•符号:
•作用:
能将0(低电平)转换成为 1 (高电平)
2-4译码器:
由4个与门和2个反向器连接成的电路叫做2-4译码器
•输入:
2个二进制位,各种组合共表示4个不同的值
•输出:
4个信号,任何时刻只能有一个是1 ,至于哪个是1取决于两个输入.
•电路:
缓冲器(buffer) :
将4个逻辑门和1个反向器组合在一起,就是原始的继电器.
也称为缓冲器.
•符号:
•输入输出:
•作用:
•输入信号很微弱的时候,可以加强信号
•延迟信号(继电器需要几分之一秒才会被触发 )
摩根定律:
1. 摩根定律是什么?
关于命题逻辑规律的一对法则
2. 摩根定律的表达式?
3. 两组等价关系:
这两组等价关系就是摩根定律在电路中的实现
1.
2.
4. 摩根定律与布尔代数的关系:
摩根定律是**简化布尔表达式的一种重要手段,因此也可以用来简化电路
12. 二进制加法器
加法是算术运算中最基本的运算,如果想搭建一台计算机,首先就要造出可以计算两个数的和的器件.
12.1 二进制的加法法则:
带有前导零的形式.每个结果都是2位的值.
•加法位(sum bit):
•进位位(carry bit):
1+1=0,进位为1
12.2. 8位加法器真实模型:
范围:0000-0000到1111-1111 即十进制的0到255
12.3 加法器中的电路设计:
12.3.1 半加器(half adder):
•为什么叫半加器:
半加器可以将2个二进制数相加,得出一个加法位和一个进位位.但是绝大多数二进制数是多与1位的.
半加器没有做的是: 将之前一次的加法可能产生的进位位纳入下一次运算.
•对照:
•电路:
•符号:
12.3.2 全加器(Full Adder):
•电路:
•符号:
12.3.3 8位加法器:
•模型:
每个Full Adder的进位输出都作为下一个全加器的进位输入.
12.3.4 16位加法器:
模型:
12.3.5 优化:
•更快的加法器运用了被称为'前置进位'的电路来提高运算速度.
•晶体管取代继电器.
13. 如何实现减法
14. 反馈与触发器
15. 字节与十六进制
16. 存储器组织
17. 自动操作
18. 从算盘到芯片
19. 两种典型的微处理器
20. ASCII码和字符转换
21. 总线
22. 操作系统
23. 定点数和浮点数
24. 高级语言与低级语言
25. 图形化革命
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!