有没有可能现在人类的科技树其实是点歪了?

发布时间:
2024-05-23 12:35
阅读量:
14

有一个我认为是点歪了的:进制

人类历史截止目前,最广为使用的,是十进制。为什么是十进制呢?因为大多数人长着十根手指头,数着手指算数,在幼儿时期的启蒙教育最为方便。

《阿凡达》设定中:八根手指的纳威人使用八进制

然而,上到宇宙文明,下到微观存储,最为普适的进制,必然是二进制,但二进制与十进制的转换并不简单。

我认为人类历史上曾经出现过最好的,曾经广泛使用的进制是:十六进制。有一个成语叫半斤八两,意思是二者差不多,这就源于十六进制,为什么会出现十六进制?因为把一份粮食分出1/10并不容易,但是要分出1/16却很容易:平均分成两份,重复4次即可。

为什么我认为十六进制优于十进制?因为十六进制与二进制的转换既方便又无“损耗”:

一个二进制数:1010111010101010101010101,要转换为十六进制,只需要每4 bit转换为对应的十六进制数即可:

1 0101 1101 0101 0101 0101 0101

1 5 d 5 5 5 5

对应的十六进制数为:15d5555。

什么叫“损耗”?

在用二进制存储十进制数时,为了计算方便有时也会用类似于上面十六进制转换的编码方法:

BCD码:也将二进制数每4bit作为一位,但是这4bit只会表示0~9,比如要存储十进制数65535:

0110 0101 0101 0011 0101

如果熟悉2^N的朋友应该能看出来,如果直接用二进制表示65535,会是:

1111 1111 1111 1111

明明用16bit就可以表示的数,却用了20bit,多出来的4bit,就是为了简化计算而产生的损耗。

当然请放心,计算机中存储数字的方法主要是二进制浮点数,不会将硬盘空间造成太大的损耗,但相对应的就需要CPU在二进制转换为十进制时做额外计算。


由于是上班摸鱼写的,下班了就草草收尾了,我再续写一段哈:

因为数字电路的底层逻辑只做二进制的计算,计算机中的存储数据的形式主要是浮点数,可以理解为是二进制的科学计数法。

这就意味着,为了方便我们的日常使用,计算机需要先把十进制数字转换为二进制进行计算,再将计算结果转换为十进制,在如今这个转换的过程需要多久呢?微乎其微,诸位可以打开手机的计算器,算一下0.1+0.2,如果手机没坏的话,大概率是瞬间就出来了0.3。这其中甚至还包含了一步消除误差:因为浮点数计算直接转换为十进制会是:0.30000000000000004

评论区有人调侃我是机器人,做个梗图送给大家

得益于集成电路的发展,无论是存储空间还是CPU算力,都足以在大多数情况下,让这样的十进制与二进制的互相转换接近于无感。如果使用十六进制,理论上来说,可以让这种转换更快,但从0.001s快到0.00099s的收益太小了,而要强行推广十六进制的代价却太大了。

尽管如此,十六进制因为上面说的易于转换、充分利用bit位的优点,在编程时还是一种非常好的进制。相同位数下,十六进制可以比十进制显示更大的数字,红绿灯的倒计时一般只有2位,如果红绿灯等待时间超过100s,等待时间就会变成一种杂糅的进制:16/10进制:个位是十进制,十位是十六进制。

显示为F4的红绿灯倒计时(实在是没找到清晰的图)


很感谢大家的喜欢与讨论,有几个评论区争论的比较多的事情,可能因为我表述的不太清楚,所以我再补充一点点:

我并不主张要废十进制,立十六进制,

原因前面也说了,代价太大,收益太小。对于人类来说,用的最习惯的,肯定还是十进制。

哪怕未来某天人类发现,使用十六进制真的可以大大推进科技发展,我推测十进制也不会被废除。因为类似的事情在中国就发生过:当打字机在全世界兴起,但唯独无法征服东亚的汉字文化区时,为了顺应时代潮流,韩国和日本选择了使用表音文字,而中国选择了拼音与汉字全都要,这一方面保留了我们使用千年的汉字,也福荫后世,让我们在计算机时代打字时,只要知道读音输入法就可以检索到对应的汉字。

关于古代的十六进制

有很多知友认为“半斤八两”只是单位换算,而不是是十六进制,我觉得没必要在这点上纠结。我可以换一个例子,古代的计算器:算盘。

感谢知友 @向死而生 让我涨知识:算盘支持两种进制:十进制和十六进制

传统算盘每列是上二下五,7颗珠子,上面每颗代表5,下面每颗代表1,所以一列可以表示的最大数值就是15。如果一列已经表示为15了,又需要加1的情况下,就将当前列全部归零,在左侧的更高位加1。这种“逢十六进一”的算法,称之为十六进制应该不会再有疑义了。

至于算盘用作十进制,就是上面只使用1颗,下面只使用4颗,每一列最大表示为9,逢十进一。

关于“进制”算不算科技树的一部分

我充分理解各位认为“进制”不是科技的观点,在数学层面上,一个数字用任何进制,任何形式表示,都不影响它的数值,就像1/2,2/4和0.5,表示方式不同,但含以上是一致的。物理、化学公式,也不会因为进制的改变就有新发现。

但我的观点是,并不是只有基础科学的进步才算科技进步。以智能手机为例,其本质就是一台缩小的,可触屏的计算机,它的普及并不是因为基础科学突然取得了巨大发现,而是人类基于已有科技后发明创造的产物。

讲在最后

感谢大家的热情讨论,在评论区我也颇有收获。

我只是那天摸鱼恰好看到这个问题,就把自己的想法写出来,多有简略不严谨的地方,感谢大家多多包涵。

如果我的想法能激发诸位知友的思考,那我将不胜荣幸。如果大家有补充,或者自己的看法,也非常欢迎大家和而不同,友好讨论。

END