“二进制”“四进制”“八进制”“十进制”谁会是数据存储界的最强王者?

爱上梨花猫的四儿 中科院半导体所 今天



引一引


我们人类天生十指,按理说我们更习惯用十进制计数是理所当然的。随着时间的推演各种进制的方式都尝试过统治“计数”界。不过就目前来看,“二进制”处于当之无愧的霸主地位


你能说清楚为什么吗?


这符合“逻辑”吗?



1

从“十进制”被替代说起


怎样用机械电气元件来保存数码,这是设计任何自动计算装置之前必须解决的问题,而它又和所用的“进制”有密切关系人类天生双手十指。“扳着手指头”计数,使十进制成了自然的数制。


其实,还有一种更自然的进制,那就是反映“有无”“上下”大小”“高低”“正负”“阴阳”“真假”这些普遍的矛盾对立或者叫作“逻辑”关系的二进制。

这里不得不提一下我们先哲的智慧了,这种“逻辑二进制”在我国有着极其悠久的历史。比如我国古代传说中的“结绳记事”:有事就在绳子上打一个结。这里已经包含了“有”“无”概念的萌芽。

card from Baidu

任何一个具有两种状态的物理过程都可以用来表示“有”和“无”,或者简单地写作1和0。把这些1和0组合起来,可以表示任何其他数码。


例如,从0到16的十进制数用二进制写出来就是:

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100  1101 1111 10000


为了避免混淆,我们往往还在二进制数的右下角加一个脚标2

二进制是最容易学习的数制。十进制乘法里的“九九表”,在二进制中剩下“一零得零,一一得一”两句口诀。十进制里的“四舍五入”,在二进制里成为“零舍一入”


也许过不了很多年,我们的孩子们在幼儿园里的就会先学习二进制算术,再接触更复杂的十进制。我会和孩子们吹嘘“你老子当年可是直接学的十进制”


2

当“二哥“遇到了”四弟“、”八弟“和“十六弟”


二进制在一个位置上用0和1两个符号,实现0和1两个数。


如果在两个位置上各用0和1两个符号一实现0,1,2,3四个数,就构成四进制


八进制则用三位二进制数,实现0,1,2,3,4,5,6,7八个数。


同理,用四位二进制可以实现十六进制,不过这时普通的数码不够用了,要以A,B,C,D,E,F来分别代表10,11,12,13,14,15。


自制图片

看了上图,大家应该明白如何在不同进制之间互相转换了。

“伏羲氏画八卦”

最早用二进制组合出四进制和八进制的记载,应当认为是我国传说中的

“伏羲氏画八卦”

八卦图

card from 百度图片

伏羲用“--”和“—”两种符号拼成了八卦。

下面我们把八卦阵拉平,并写成二进制。



古人解释《易经》说“两仪生四象,四象生八卦”,翻译成现代语言不妨理解为“二进制可以扩充成四进制,四进制可以扩充成八进制”,可见我们中华民族很早就使用了十进制以外的二、四、八等进制。


事实上中国式算盘还使用了十六进制和复合的二五进制。关于算盘的书面记载,至少可以追测到宋代名画《清明上河图》,那里药铺柜台上就赫然摆放着一个算盘!

card from http://blog.sina.com.cn/s/blog_4d666bcc01016e1x.html



3

不如直接说吧,用几进制保存数码最为经济?


这要看“经济”的含义是什么,用三位十进制能表示的最大数是:


999


用三位二进制能表示的最大数是:


7


同理,用n位k进制能表示的最大数是:



假定每一位上的k进制数码0,1,2,…,k-1都各要用一个“状态来实现,而且n位k进制寄存器的成本c正比于状态的总数kn。要求以成本c=kn最小,而所能表示的最大数,为指定常数,来确定k的值。这是带一个“约束条件”的优化问题,它很容易求解把成本对k微分,应有:

再对约束条件微分,求得:


代入前面的式子,得到决定k的关系:

即k等于自然对数的底e=2.71828…。最接近e的整数是3,于是按照上面讲的意义,最经济的应是三进制


这兄弟,好像没见过啊

card from 百度图片

然而具有三个状态的元件必须专门设计,能给出两个状态的物理效应却比比皆是。2是最接近e的另一个整数,这是使用二进制的又一个理由



参考:

数字文明

物理学

计算机文明

百度

新浪博客

互动问题

【互动问题:你也有对习以为常的身边事思考的例子吗?不妨分享出来,一起讨论


请大家按照  互动:问题答案  的格式在评论区留言参与互动。


截止到 下周日 中午12点,点赞数前三名的朋友将获得我们送出的礼物。


上期拟获奖名单


如何打造自己的家庭影院?


(里面有奇思妙想)


我爱长发飘飘

💐 美猴王 🐒

lcxxdork

在此我们感谢读者发来的礼物秀!


    已同步到看一看