西安邮电大学-《大学计算机基础》课程地址 追根溯源,看看计算机内部的世界是什么样的? 据说:“这个世界上有10种人,懂二进制和不懂二进制的!”

2.1 计算机中的二进制

影响数制选择的因素

image.png

生活计数-十进制

生活中,人类不约而同的使用十进制计数,玛雅人用二十进制。计数工具(手指+脚趾)决定了计数方法。

重量单位-半斤八两:

古代重量采用十六进制,一斤16两,半斤8两。
是因为计量工具杆秤在制作时,会先用一斤重的砝码在秤杆上标注出一斤的刻度,然后把斤细分成两的刻度,是通过使用绳子对折来将斤刻度进行等分。对折一次,得到八两……
(🤔️:对折五次也可以呀,得到三十二进制也可以。为什么对折四次呢 )-难道是现有的十六进制,后有的秤杆制作?

时间单位-六进制:

西方一天24小时,中国古代一天12个时辰。都是源于六进制。时间都用六的整数倍作为进位。
时间计量工具:日晷。制作:中间一个圆心,一截绳子绑定圆心画圆。绳子为半径。将绳子……啊后边好牵强,编不下去了。
(🤔️:为啥要用六进制,为啥不和重量单位一样用十六进制呢)

【*】计算机采用二进制的原因

image.png
计算机设计制造时,采用的是电子电路做功能模块。
image.png
数字电子计算机,是由数字电子电路组成的。
数字电子电路主要由门电路组成。
门电路是以三极管为核心的反馈电路。之所以称为门,是因为三极管的导通和截止这两种工作状态,类似门的“打开”和“关闭”两种状态。像门一样的作用。
(🤔️:三极管为什么有两种状态?不应该有三种情况吗?)
门电路的输出由三极管的状态决定。由三极管的两种状态,决定了门电路的输出有两种取值:高电平(1)、低电平(0)。所以,用数字表示门电路的输出的话,就是一个二进制数。
image.png
电子计算机是由门电路的堆叠构成的。门电路的输出表示称二进制数,也就决定了电子计算机内部采用的就是二进制。
image.png
计量工具的材料决定计量工具的进制。电子计算机采用门电路作为基本物理器件,决定了其内部采用二进制。
(🤔️:我有一个疑问,电子计算机内部,由于门路的高低电平两种状态,决定了其内部是由二进制数组成。
如果未来的光子计算机或者生物计算机被创造出来后,底层还会是二进制数组成么?有没有可能是其他形态呢?如果变换的话,会影响程序设计和语言么)

二进制的四个优点

  1. 易于物理实现:因为门电路和功能电路存在现成的,可以直接用。计算机制作实现起来方便
  2. 可靠性高:门电路的输出由三极管的“导通”和“截止”状态来决定的。这种状态不容易受外界影响而改变、出错率低
  3. 通用性强:二进制可用于算术运算、逻辑运算(真1假0)
  4. 运算规则简单:十进制0~9之间的加法组合情况有55种,但是二进制0、1之间的加法组合只有三种。

比如设计加法电路的时候,二进制只用考虑三种情况,电路规模小得多,电路设计起来简单的多。
image.png
二进制运算和处理都比十进制要简单,降低了计算机的硬件设计制造的难度和成本。

最基本的三种门电路与逻辑运算:

与门、或门、非门
对应三种基本的逻辑运算:
逻辑与、逻辑或、逻辑非

与门-逻辑与【且】【&&】

逻辑与运算的功能是:只要参与的两个值中有一个为0,运算结果就是0;只有当参与运算的两个值都为1的时候,运算结果才是1。
对应我中学时数学里编的顺口溜:“真真即为真,有假不算他”
image.png

或门-逻辑或【或】【||】

逻辑或运算的功能是:只要参与的两个值中有一个为1,运算结果就是1;只有当参与运算的两个值都为0的时候,运算结果才是0。
对应我中学时数学里编的顺口溜:“有真即为真,假假才算假”。
image.png

非门-逻辑非【非】【!】

逻辑非,直接取反,没啥好说的。

讨论与思考 - 逻辑运算对于计算机有什么重要意义?

先来回答逻辑运算是什么:
计算机是由门电路堆叠而成的,门电路有三种:与门、或门、非门。对应计算机中的三种基本的逻辑运算:逻辑与、逻辑或、逻辑非。
再说逻辑运算能让计算机做什么:
这个问题让我想到的是,程序语言中为什么会有if、else、else if这种逻辑语句的存在。
我的思考结论是,正是因为不同的逻辑运算让我们的程序有了多种情况的处理结果。
如果没有这些条件判断来做逻辑运算,那么计算机就只能做单纯的数学运算。没有多样的条件对应多样的状态,计算机就和计算器没有什么区别了。
计算机没有了逻辑判断能力就好像人没有了逻辑思维,那么以后的人工智能、机器学习也就不复存在。这就是逻辑运算对计算机的重要意义吧。

【*】数制转换、编码与模数转换,逆变换

计算机中所有信息都是以二进制数的形式存在,所以信息输入进计算机内部时,需要经过二进制变换:

  • 数字从十进制转换到二进制,这个转换的过程叫做“数制转换”
  • 文字从字符转换到二进制,这个转换的过程叫做“编码”
  • 声音需要通过定时采样,将连续的波形转换成二进制数序列,这个转换的过程叫做“模数转换”
  • 图像也需要编码,从点阵信息转换成二进制数序列

当从计算机输出时,又需要进行做“逆变换”,从二进制数转换成人类能够识别的形式。
image.png