常見的二進位、八進位、十進位與十六進位都是偶數進位,而類似五進位的奇數進位卻很少見。


當然有五進位的。我設計過一條生產線,每五組產品做一個包裝袋。我在PLC程序中植入識別程序,並驅動機械手執行包裝操控。

另外,我在變電站測控PLC中植入SOE程序,此程序可以識別最後操控的幾個開關量,我設置為9組,即9進位。具體程序如下:

可見,除了十進位外,採用多少進位,完全由實際需求決定的。


先說結論:十進位流行是因為人有十根手指頭,二進位流行是因為電腦採用二進位,八進位、十六進位流行是因為它們是二的冪。

三進位、五進位、七進位等等這些,在生活中完全用不上,不知道研究數論的數學家會不會去研究它,就算研究,也離我們很遠。

但是二進位則不然,電腦採用二進位是代價最小的方式。二進位只有1、0兩個數,只需要高、低電平就可以表示這兩個狀態,方便,容錯性高。如果採用十進位,就需要在高低電平之間劃分十個不同的電平來表示,來個電湧可能數字就變了。而且二進位計算起來很方便,比方說加法,只需要實現0+0、0+1、1+0、1+1四種邏輯就行,要是十進位呢?0~9跟0~9相加,需要實現100種邏輯纔行。人腦計算沒問題,可是設計100種運算的集成電路,複雜度不止100倍了吧。

但是二進位太反人類,十進位的9用二進位表示就是1001,十進位的99用二進位就是0110 0011。為了更方便地在編程和電路設計中表示電腦中儲存的數,人們更多地採用八進位或者十六進位,比如十進位99用八進位就是143,用十六進位就是63。

為什麼不用奇數進位?因為二進位轉化成偶數進位更容易,準確地說是轉化成2^n進位更容易。比如十進位99,用二進位表示就0110 0011,前面的0110用十六進位就是6,後面的0011用十六進位就是3,所以把二進位四位四位地轉化成十六進位,連起來就是個完整地十六進位數。十進位99的二進位01 100 011轉化成八進位也一樣,前面01轉化成八進位就是1,中間100轉化成八進位就是4,後面的011轉化成八進位就是3,連起了就是143。

如果想把二進位轉化成其他的進位,就得按微機課上學的老老實實地把每一位都先乘後加,很麻煩。比如二進位0110 0011轉化成十進位就得這樣:1×2?+1×21+1×2?+1×2?=99。

所以其實雖然十進位也是偶數,但它跟二進位、八進位、十六進位流行的原因是不一樣的。十進位流行完全是因為我們有十根手指頭。二、八、十六進位的流行是因為它們是二的冪,而我們須臾離不開的電腦和手機最適合使用二進位。


最普及的10進位是我們生活的習慣用的進位。

計算機裡面最常用的是2 8 16進位,是由計算機的硬體決定的,0是低電平、1是高電平。

16、8進位相當於4、3個二進位數組合,二進位裡面很多01組合的,人讀取有時較為困難,就找這樣的組合起來幾位幾位看。

至於是16和8,而不是32進位,因為0123456789abcdef這種可以用單個數字或者字母表示,並且容易區分和比較大小,例如看到d容易看出是第幾個數字。而字母不宜多,比如看到r,平常人要反應好一會才知道這是從0開始的第幾個數字。

其他行業中可能有很多其他的進位,例如你做奧數題還能做出7進位來,不過計算機裏最常用的就是2 8 16和常人用的10了。


數學上,進位不是關鍵,各進位是等價的。

下面有人說了,2、8、16是與計算機有關,二的冪。

而我們所謂「常用的」十進位,其實只是偶然,因為人有十個手指頭,數10進1,十進位。

這其實不是個數學問題,而是個人類學問題。在有些部落就是十二進位,為什麼呢?因為他們數數的時候,肘關節也算,數到12進1,成功了,十二進位!

至於為什麼是偶數,因為人體是對稱的。就這麼簡單。


偶數多是因為對稱的情況普遍存在.比如開關的開和關.

太極就是標準的對稱二進位,陰陽調和,正負和零.八卦就是三個爻,很自然的延伸.

八進位十六進位,這兩都是二進位延伸過來的.成語雲半斤八兩,那一斤怎麼是十六兩呢.

因為十六比較好弄出來,繩子對摺幾次就能均勻的出現,弄個奇數進位,稱的刻度都不好刻.

又比如圓周等分,直接把圓周切成五份,比起切四份和六份要麻煩很多.

現實生活中使用你試試361度取整,把圓的對稱性搞沒了,絕對很難受.

按照信息密度,應該是三進位最接近e.蘇聯做過一些探索,正電平,負電平和低電平去實現一個位元的信息存儲,不用我說,比起二進位有電還是沒電,對元器件的要求肯定天上地下.本著簡單就是耐操的原則,現在計算機底層都是二進位.


推薦閱讀:
相關文章