美文网首页
e进制,少数人才知道的计算机基础知识

e进制,少数人才知道的计算机基础知识

作者: Buffalo_Lv | 来源:发表于2018-05-17 11:53 被阅读1671次

大约在2002年的时候,我在一本《计算机应用基础》教程上看到类似这样的描述:“理论上e进制是最优的进制,考虑到取整数,三进制是实际可用的最优进制,但是考虑到尽可能简化硬件电子器件的设计与制造,现代电子计算机系统的设计普遍基于二进制”。当时我就很不明白这个“e进制是理论上最优的进制”结论是如何推导出来的?从什么角度出发来看待“最优”?那个时候我才刚刚学会用电脑打字,才刚刚学会浏览网页,无法在中文网页上查到任何答案,英文的网页也看不懂。当时我的兴趣也不在计算机科学上,这个困惑就不了了之了,但是问题始终是记在了心里,没敢忘记。

大概在2012年的时候,十年过去了,一个闲暇的时刻,我在思考究竟什么是计算,什么是信息,信息和能量之间有什么关系时,我又回想起了这个基本的进制问题,于是上网搜索,这次很容易就找到了答案。因为进制问题是计算机系统设计的基础中的基础,无论是硬件还是软件,都是无法绕开的。因此我把网络上的答案用自己的语言描述在这里,分享出来,让其尽可能的简单易懂(其实我也忘了许多数学公式,数学推导过程由网友给出,我用自己的语言转述、注释出来,让其更容易理解)。

假如我们需要表示一个数值范围(0--15),那么

若用16进制表示,只需要1位数字就足够了(0-9,A-F)

若用2进制表示,需要4位数字才能满足(0000-1111)

若用3进制表示,需要3位数字就足够了(000-120),而且还富余了很多空间(121-222)

注意一个有趣的现象:16*1=16;2*4=8;3*3=9。从硬件设计的角度来看:若采用一种存储器件,1位能表达16种状态,这个器件的复杂度是怎样的呢?若采用另一种存储器件,1位能表达2种状态,但是可以采用多个位(比如4个位)来提高数值表达能力,这个器件的复杂度和前一个器件的复杂度相比是简单了还是复杂了呢?这个答案不言而喻。因此,计算机科学家或者说数学家给出了一个系统设计标准:用最少的资源做成最大的事,用最小的(进制*位数)表达最多的数值,最大化系统的表达效率。看到这里,也就不难明白为啥e进制是理论上最优的进制了。

数学问题描述和证明如下:

假设某计算机系统有n位,每位m个状态(m进制),m*n = v;那么该系统的数值表达范围为000…(n个0)到mmm…(n个m)-1;

现在的需求是:在v的值确定的情况下,尽可能地让数值表达范围最大化,也就是让m的n次方(m^n)最大;

 

数学公式推导开始

m^n = m^(v/m) ,记为f(m) ==>(等量替换,小学数学)

ln(f(m)) = ln(m^(v/m)) = ln(m)*v/m ==>(等式两边取对数,ln表示以e为底数,高中数学)

(1-ln(m))*v/m^2 ==> (对m求导数,微积分、大学数学)

当m等于e的时候,导数为0,这时为极值点,ln(f(m))取得最大值,等价于f(m)取得最大值,因此得出最终结论:e进制是理论上最优的进制。接近e的整数值只有2和3,因为晶体管的特性,现代电子计算机系统最终普遍采用了二进制。

相关文章

网友评论

      本文标题:e进制,少数人才知道的计算机基础知识

      本文链接:https://www.haomeiwen.com/subject/tykbdftx.html