北京笔记本销售联盟

进位制与现代计算机(中)——位值原则

创翼学苑 2020-11-26 15:54:43

世界上有10种人,懂二进制的和不懂的。





 


        数字的出现和发展历经了数千年的时间,之前的文章主要讲述了利用不同的“符号”来表示不同数字的大小。其中有一段是:


        比如罗马数字I表示一,V表示五,X表示十等等。相应的,III就是3,XII就是12。只不过,罗马数字不只是简单的符号累加,而是有个特殊的“左加右减”规则,即大数在左时为加,大数在右时为减。比如VI是6,而IV是4。

 

        其实,这段内容里已经体现出了,除了利用不同的“符号”来描述不同的“数值大小”之外,还可以利用“符号的相对位置”来描述不同的“数值大小”。这被称作“位值制记数法”,也是今天我们所广泛使用的记数法。

 

        比如全球广泛使用的的阿拉伯数字——还是以苹果来举例说明:当某人收获了一个苹果,便记作“1”来表示。当他又收获了一个苹果时,却不是以“11”来表示,而是以一个新的符号“2”来表示。依次类推,随着苹果的增多,“3”、“4”、“5”一直到“9”,都有不同的符号来表示这不同数量的苹果。看起来似乎比其他方法节更省文字记录的空间?到目前为止确实是。

 

        但是新问题又来了——注意,前一种数值表示法,人们不断地累加竖线或横线,简单易记,但是占用文字记录空间极大,于是不得不发明了新的符号来改变这一窘况。在阿拉伯数字中,情况正相反:空间够用,符号却太多了。于是,位值制记数法便应运而生:比如数字536,最右边的6表示“6个1”,中间的3表示“3个10”,最高位的5表示“5个100”。

 

        在数字不大时,这种方法和传统的表示法在文字空间占据量方面差别不大。但当数字快速增加时,这种方法的优势就体现出来了:比如记录数字2345时,阿拉伯数字只需记下“2345”。但对于早期记录法来说,需要分别记录下“2个千、3个百、4个十、5个一”。


        以罗马数字举例,同样是2345,罗马数字要记录下“2个M、3个C、4个X(用一个L减去一个X表示,记为XL)、1个V”,写出来就是MMCCCXLV。至于现代生活中更多使用的更大的数字,不仅表示时要用到更多的新符号(字母),写出来也占据了大量的空间。这时再用类似的罗马数字来表示就有些力不从心了。

 

        但是之前的文章还提到过,为什么进位一定要是“满十进位”呢?能不能有别的进位制?位值制记数法能不能将其表示出来?答案是,不一定非要满十进位,可以有别的进位制,也可以用位值制记数法将其表示出来。


        下图是十进制下的数字表示方法: 



        下图是四进制下的数字表示方法:


        下图是二进制下的数字表示方法:

 

        至于相应的计算,也是有方法的。比如我们知道某数字采用的是n进制,则其每个数位从低到到高就依次是n^0、n^1、n^2、n^3……。

 

        比如对十进制的数字1234,其数字从低位到高位就依次是十的零次方(1)、十的一次方(10)、十的二次方(100)、十的三次方(1000)(括号内数字均为十进制),则1234在十进制下表示的数值大小为:


        1234(十进制) = 1×1000+2×100+3×10+4×11234(十进制)

 

        而对二进制数字1010来说,其数字从低位到高位依次是二的零次方(二进制的1,十进制的1)、二的一次方(二进制的10,十进制的2)、二的二次方(二进制的100,十进制的4)、二的三次方(二进制的1000,十进制的8)。则1010在十进制下表示的数值大小为:


        1010(二进制) 1×8+0×4+1×2+0×1 10(十进制)

 

        这里有个小规律,“10”这个数字的数值大小永远等于n进制情况下的n。比如二进制的10就等于二;四进制的10就等于四;十进制的10就等于十。所以文章开头那段话,在不明进制时,只能通过下文来判断。

 

        那么,位值制记数法和进位制,这两者与现代计算机有什么联系呢?请关注本公众号,在接下来更新的文章中会解释。


友情链接

Copyright © 北京笔记本销售联盟@2017