写给家人的计算机和编程简介
作者:互联网
作为一个码农,有时候会遇到非专业的亲戚朋友的问题:到底计算机是怎么运转的?程序员编程到底在做什么?诸如此类的科普问题,往往也不是一两句话能说明白的。今天花了点时间总结了一下,尽量深入浅出地解释这个问题。
计算机的组成是怎样的呢?简单的说就是拼积木,由特别简单特别小的几种乐高积木块拼成小零件,再拼成物品人物,再拼成房屋街景,聚少成多聚沙成塔。
1. 二进制是表示数字的一种方法,只有0和1两个数字,可以和我们常用的十进制相互转换。比如二进制的110意思是十进制的6
2. 数字电路:电路可以分成有电和没电两个状态正好用来表示二进制数字的0和1,多个这样的电路组合在一起就可以表示更大的数比如:110。这样用电路来表示和操作二进制数字,我们就得到了数字电路。
3. 通过二极管和三极管组成的数字电路我们可以拼出进行“与,或,非”这几种基础运算,通过这几种基础运算我们可以拼出更多数学功能的数字电路,比如加法器,乘法器,以至于乘方开方求余数等等
4. 如果每个运算都靠人手动操作,就像会计使用老式按键的计算器计算核对纸质的账本,仍然很慢很容易出错。所以我们同时也制造了自动操作计算电路的电路,就是控制器。
5. 我们用磁盘上某个点有没有磁化来表示二进制数字0/1就得到了可以存储数据的磁盘。同样用电路也可以做存储工作,就是我们用的内存和U盘还有固态硬盘。
6. 之后我们又制造了各种输入设备比如键盘鼠标摄像头麦克风传感器等等来收集数据。还有各种输出设备来输出运算结果甚至直接操纵机器,比如显示器,音响,温控器,智能开关,智能家电,数控机床,无人驾驶汽车...
7. 有了上述组成部分“运算器,控制器,存储器,输入输出设备”就组成了一个完整的计算机硬件系统,这就是传说中的冯-诺依曼结构,小至手机,智能手环大到智能汽车,飞机以至于国家超算中心里的超级计算机,都是这样拼出来的。
8. 很多时候单一的计算机功能有限,于是人们把计算机用网线连接起来,让它们可以互相通信互相协作,这就组成了互联网。至于一台和多台计算机联网有多大差别,想想一部没流量没wifi的智能手机就知道了
9. 以上所说的各种电路和设备都是直接看得见摸得着的,也不能随意创造复制删除的实在物品,所以叫硬件
10. 但是计算机所计算的存储的网络传输的都是数据,是抽象的可以方便的创造复制删除,这些就都属于软件的范畴,比如操作系统(OS),应用软件(APP)
11. 软件的构成也是堆积木的过程,刚刚说了我们有计算电路也有控制电路,那么控制电路怎样自动控制计算的呢?我们仍然使用二进制数据来表示控制操作的命令,比如110表示做加法,111表示做乘法,101表示把结果存起来等等,这些指令叫机器码,这样我们就可以用这些指令拼出最简单的程序,而且是用计算机能够兼容的二进制数据组成的控制程序,这样可以用数据自动控制数据而不是人来直接控制。这就是程序,也就是软件。
12. 计算机控制器识别和执行机器码是非常直接的,但对我们编写机器码的人来说这一串串二进制数可就不那么直观方便了,所以就有了一种用单词缩写来表示机器码的形式,对于编程的人来说相对容易理解和书写,比如加法是ADD移动数据是MOV,这就是传说中的汇编语言。
13. 对于人来说,其实汇编语言还是相当的晦涩难懂,所以贝尔实验室的Dennis MacAlistair Ritchie发明了C语言,容易写,又容易看懂。这下,人们可以写出功能更丰富,更复杂的程序,使得编写软件成为一个职业,也使得计算机的应用越来越广泛。想象一下,如果苹果手机不装任何APP,你愿意用吗?那和板砖有什么区别
标签:机器码,数字电路,计算机,二进制,简介,编程,写给,电路,比如 来源: https://blog.csdn.net/time1812/article/details/121261295