Skip to content

编码: 隐匿在计算机软硬件背后的语言

编码引子

摩尔斯编码

用 . 和 - 即可表示 (说明只要两种形态) 比如SOS是 ... --- ...

布莱叶盲文码

用平面和凸起表示 有趣的地方在于出现了类似 shift 换挡码 和 escape 之类的码,分别用来切换以区间或是之后的第一个字母的编码含义。

手电筒的引子

电子基础

原子:(atom) = $原子核内的(中子_{中性} + 质子_{正电荷}) + 电子_{负电荷}$

原子序数:其实就是原子核内的质子数!!

电流产生的原因:(尤其是外层)电子从原子里逃逸会产生电流。然而稳定的电流则需要这个原子的电子逃到下个原子上,这个原子再从上个原子那获得电子。电子在原子间不断移动。

$^{杂谈}$电流electricity:源自古希腊文的琥珀,因为古希腊文发现琥珀摩擦羊毛会产生静电

电流基础

电池是什么:可以想象电池的正极啥也没有,电池的负极都是电子。所以中间连上一根电线把负极多余的电子带到正极。电池把电子都赶到负极去是需要化学反应的,所以当化学物质消耗完,电池就没用啦。

电流、电压、阻力和功:电流即是每秒钟通过电线的电子量,电压可以想成水压,电阻则不容易让电流通过。如果没有电阻,电流会无限大~另外,在电阻很大的地方(比如长距离电线),为维持电流,电压就得相应增大。 $I = E / R$ $P = E * I = E^2 / R$

手电筒升级

单个手电筒 => 连电线的手电筒(两个,A到B与B到A) => 两个手电筒启用公用连接,节约导线 => 高电压 + 接地。

问题:电线对于跨度长度有最大限制。

电报机与继电器

电报机就是莫尔斯借助于电磁感应发明的!话说他也好厉害,本身是画家还从政~ 为了解决电报机里的电流的最大距离限制,出现了中继站,里面的继电器就是根据电流控制开关,从而实现在新电路上再重新发一遍刚刚收到的内容~

二进制数

为什么我们用十进制:因为人的十根手指头呀hhh

$^{杂谈}$bit:= 来源于binary digit的缩写~

胶卷

原来照相机用来读取胶片的曝光时间也是通过对应编码小格格上有没有电流决定的~

商品码

才知道原来它也是二进制码!并且有很多奇妙的设计。比如左侧、中侧、右侧都有护卫线;左侧奇校验右侧偶校验,这样无论左读还是右读都对~ 读出来的数字 = 数字系统符 + 供应商编码 + 产品码 + 模校验符。居然还有校验符!和MAC地址好像喔

逻辑与开关

布尔代数

布尔逻辑运算也可以用代数符合表示喔! + 表示 并,X 表示 相交。这样 1 + 1 = 1也符合规则。

知道了与门、或门、与非门、或非门在电路里的样子。以及与非门就是与门的非哦,或非门就是或门的非。按文氏图比较好想象~

补充异或

很有用的异或自反性:a ^ b ^ a = b 这样,可以实现原地交换值

A=A\^B(a^b);

B=B\^A(b\^a^b=a);

A=A\^B(a\^b^a=b)

补充格雷码

格雷码是一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一的。主要为防止出错,因为只要运算时数字改变不是相邻位元时就算错。重点在于,从自然二进制码转换成二进制格雷码,取次高位与高位异或,最高位保持一致。

二进制加法、减法器

加法

两个二进制数结果相加是由异或门XOR的输出给出的 进位是由与门AND给出的

XOR 0 1 AND 0 1
0 0 1 0 0 0
1 1 0 1 0 1

半加器 = 加和输出 + 进位输出 = 1个异或门 + 1个与门 = 8个继电器

全加器 = 加和输出 + (进位 + 下个加和)输出 = 2个半加器 + 1个或门 = 18个继电器

8位二进制加法器 = 8 x 18个继电器

现在的计算机已经由继电器 => 真空管 => 晶体管

减法

涉及到求补什么的,求补可以用反相器

表示负数时,第一位是1. 0最小 127是01111111 -128是10000000 -1最大是11111111 再往上加1位就超出八位数了 八位数部分还是0 所以似乎还有那么点道理…

反馈与触发器

又讲了怎么设计电路、装什么门可以实现「存储记忆」,即简单的存储器。可惜我看不懂这一节 >.<

字节与十六进制

一字节:8 bit 就是源于之前的加法器的位宽恰好就是8位。

十六进制:代表半字节,即四 bit: $2^4$。