http://kaito-kidd.com/2016/04/20/code-note-01-10/#more
由于最近正在看《编码:隐匿在计算机软硬件背后的语言》,整理并记下读书笔记。
1、至亲密友
2个人远距离交流,可以通过手电筒开和关进行通信,但想表达的文字太复杂,手电筒开关次数太多,难度非常大。
引出莫尔斯电码,使用点和划(短闪和长闪)通信。
结论:
-
编码是用来在机器和人之间信息传递的方式,编码就是交流。
-
编码无处不在,手电筒的闪烁,英语词汇,空气中的比划,手语,布莱叶盲文。
-
计算机里存储和传递数字、声音、音乐、图片和电影,处理后呈现出信息与人类沟通。
2、编码与组合
莫尔斯码发送简单,但是接收后解析困难,解决方案:构建信息与编码的图表。
结论:
-
码字的数目 = 2^编码位数
-
编码进行适合的组合,得出完整的信息表示。
3、布莱叶盲文与二进制码
布莱叶觉得最初的盲文编码过于复杂,不利于长文本阅读,随之改造盲文编码,使用23的矩阵,利用凸/平点表示一个字母信息。此标准沿用至今,改造后有了二级布莱叶盲文(使用很多缩写,一个23矩阵表示一个单词)
结论:使用6位二进制码表示出2^6=64种编码表示,并且根据上下文有双重身份。
4、手电筒的剖析
原子构成:中子、质子、电子。
一个原子的中电子数=质子数,如果电子从原子中脱离,就会产生电流。
当质子与电子出现失衡,就会自我修复,从其他物体带走电子,例如地毯带走脚上的电子,自己感觉被静电电到了。
电路中的电子不断从一个原子移动到下一个原子,就形成了电流。
电池内部经过化学反应,能够使多余的自由电子聚集到负极(阴极),正极(阳极)变得急需电子,化学能转为电能。
电池为电路提供电能,反过来,电路为电池内化学反应提供条件,化学反应持续进行,化学物质被消耗完,电池没电。
导体:最外层电子容易逃逸。绝缘体:阻抗性很大(电阻)。
交代出:电流、电压、电阻、功率。
白炽灯发光原理:钨丝电阻非常小,电流经过后钨丝变热达到燃点,由于存在真空中,不会燃烧,所以发亮!
5、绕过拐角的通信
远距离如何通信?通过电源+导线的方式,实现远距离通信。
距离越远,需要的导线越长,成本高并且电阻大,需要强电压。
如果电压足够强,电池足够大,通信2方只需要一端接地,另一端使用一根导线即可,减少成本。
结论:使用导线可以构建出绕过拐角、视线之外的发报系统,不受距离限制,涉及问题:电流、电阻等。
6、电报机与继电器
早期提高远距离通信速度方式:人站在高山上,作为中继系统挥旗发出旗语,或通过机械臂装置代替人工。
电报机原理:在线路一端采取一些措施,使线路另一端发生某种变化。
电池+导线缠绕铁棒,电流通过后,铁棒具有磁性。电磁铁是电报机的基础。
电报机构成:
- 发送端:一个开关,敲击使其上下移动,产生点、划莫尔斯码
- 接收端:一块电磁铁拉动一根金属杆构成,发送端电键按下,电磁铁拉动金属杆下降,松开电键,弹回原来位置,接收点、划信息。
中继器由来:距离太远产生的问题:电压有限,距离越长,电阻增大,需中间设备传送信息。
中继器其实就是在接收端再增加一个类似发送端的设备,可以同步发送端的信息,发送给下个接收端,以此循环,放大“信号”。
7、我们的十个数字
人的数字世界:十个数字,因为有十只手指。
罗马数字:I、V、X、L等,缺点乘除复杂。
阿拉伯数字:计算简单,分解计算。
8、十的替代品
手指、卡通人物、龙虾、海豚的数字世界:10、4、2、1。
数字可以有十进制、八进制、二进制表示。
二进制只有0、1,可以代表开关、电流是否通过、灯泡是否发亮。
二进制与计算机有紧密联系。
9、二进制数
二进制每一位,被称为比特位(bit)。
编码数量 = 2^比特位
UPC(商品统一代码,条形码)是95位的二进制码,包含左护线、数字、中护线、数字、右护线。
UPC下一串数字就是二进制码通过一定规则编码转换后的数字(分类,ID,校验码)。
结论:比特可以表示文字、图片、声音、电影,也可以表示产品编码、胶片速度等。用比特表示信息所要做的就是计算有多少种可能性罢了。
10、逻辑与开关
在解决问题时,可以把文字语言转换为数学语言,根据数学公式可推导计算问题结果。
在布尔代数中,操作数不是数字而是类,一个类就是一个事物的的群体(集合)。
布尔代数中,类的计算使用交集、并集计算,1表示全集,0表示空集。
矛盾律:一个事物既不可能是它本身同时又是它的对立面。
交集、并集、全集去掉某些元素:可用OR、AND、NOT表示。
映射到电路中的表示:
- AND:串联
- OR:并联
电路中使用开关的原理,可以制造出电报机,从而可以演变制造出计算机。
如果此文章能给您带来小小的工作效率提升,不妨小额赞助我一下,以鼓励我写出更好的文章!