1. 程式人生 > >《編碼:隱匿在計算機軟硬體背後的語言》筆記05

《編碼:隱匿在計算機軟硬體背後的語言》筆記05

第七章 我們的十個數字

 

        首先說明,1-9這些數碼只是一種符號,表示數字的符號,實際上,數字是集合的抽象,如,3個蘋果、3個人等等的集合具有相同的屬性——集合的數量是3,現在人們已經自然而然的使用這些數碼來表示數,但實際上,我們完全可以使用“*”之類的完全自定義符號來表示3所表示意義,而且從邏輯的角度看,後續的四則運算等全部數學運算都可以按照原定的規則正常進行,所不同的僅僅是表示的符號不一樣,比如使用漢字的“一二三四。。。”也可以表示上述運算,而且,在相當長的時間裡,我們的國家就是這樣使用的,當然,現在我們已經熟悉了阿拉伯數字的表示方式,但作者希望說明,選擇什麼符號表示數是可以根據需要隨時改變的。

        使用十進位制而不是其他進位制大概源於人類的手指有10個,digit這個詞也有手指、腳趾的意思。

        與我們國家的“一二三四。。。”對應的是歐洲的羅馬數字,二者的相同之處在於,二者均使用了相當長的時間,同時,二者的乘除法是比較麻煩的。

        阿拉伯數字不同於其他數字系統,阿拉伯數字是位置相關的,同一個數字在不同的位置上表示不同的含義;阿拉伯數字中沒有表示10的數碼;阿拉伯數字中有一個其他絕大多數計數法中沒有的符號——0.

這使得阿拉伯數字可以使用類似於10的降冪排列的方法來表示——最高位數碼*10^n+次高位數碼*10^n-1+......,注意,這個過程可以一致持續下去,因為還有小數部分,更進一步,這使得用科學計數法表示數成為可能,而科學計數法是實現用浮點數表示數的基本方法。

        阿拉伯數字系統這種與位置相關的計數法的另一個好處就是將加法規則和乘法規則轉換成了一個10*10的表格,只要記住這個表格,就可以熟練進行這幾種運算,這就是我們小時候背誦乘法表和加法表的原因。

        再推廣一下,位置記數法的好處就是,即使不是10進位制,其他進位制的表示和運算也是可以使用相似的規則來表示的,比如12進位制、60進位制,以及計算機中常用的16進位制和8進位制、二進位制。

 

附:由於人類有10個手指頭,所以發展出了10進位制,鑑於卡通人物一般只有4個手指頭,對於他們而言,8進位制是自然而然的選擇,10進位制反而顯得有些奇怪。

 

總之,本章的內容需要具有能夠跳出一般規則的想象力,數學系的學生可能比較容易理解。