聊聊 「二進位」【給孩子講科技】
二進位是現代計算機計算和運行的基礎。計算機的晶元,現代的二極體,MOS 管這些晶元的基本單元,我們可以通過高電壓和低電壓兩種狀態來指導基本單元是什麼二進位bit 值,上百萬個MOS 管組合成了功能各異的晶元,在軟體的驅動下進行我們預期的工作。
就是為什麼只用0和1來作為計算的元呢?在當前的技術能力下,人類發現的自然規律下,能穩定存在,嚴格區分的是一個事物的兩個狀態,對與錯,男和女,是與非等等。但是這個只是我們還沒有發現能穩定存在兩個以上的狀態的東西,比如量子計算機,肯定可以突破這個限制,具體我只看了參考資料里的皮毛,就不展開了。
做個假設,二進位就像要麼在底樓,要麼在頂樓,如果那個人在中間層,我們就沒辦法知道其狀態,如果我們沒有辦法知道樓層內部的信息,或者叫做人出來了,或者進去了兩種狀態,如果我們可以通過紅外或者其他手段知道人進了樓宇後停在什麼層,那麼就不需要只用內外兩種狀態來表示,可以用任意樓層來表示,可以是3進位數,n進位數。
萊布尼茲 Leibniz 自1679 就開始了從事二進位相關研究,他的研究成果最早發表於1703年《論只使用符號0和1的二進位算術,兼論其用途及它賦予伏羲所使用的古老圖形的意義》 "Explanation of Binary Arithmetic, which uses only the characters 1 and 0, with some remarks on its usefulness, and on the light it throws on the ancient Chinese figures of Fu Xi"。提到伏羲,很多學術界的觀點覺得二進位的靈感來自於中國的伏羲八卦的影響,也有人覺得時間上對不上,很多我們教科書上的觀點,在某種程度上都還沒有定論。
1854 年,英國數學家喬治·布爾(George Boole)上升到代數化的邏輯系統,大家現在看到的布爾代數,奠定了電路使用二進位的數學基礎。
1937年,克勞德·香農(Claude Shannon)電氣工程碩士學位論文,用繼電器和開關實現了布爾代數和二進位算術運算。論文題為《繼電器與開關電路的符號分析》(A Symbolic Analysis of Relay and Switching Circuits)[6],其中香農的理論奠定了數字電路的理論基礎。
1937年11月,任職于貝爾實驗室的喬治·斯蒂比茲(George Stibitz )發明了用繼電器表示二進位的裝置。它是第一台二進位電子計算機。
在現代的電路玩具中,基本的電路二進位概念也有很好地體現。比如可以做一些樂高的機器人編程等,就是貴了點,也可以用Scratch 來闡述二進位的概念,等我找到合適的機會做一個二進位的運算演示的Scratch Demo。
http://weixin.qq.com/r/RygrMzHE1myprXVQ931V (二維碼自動識別)
[1] https://www.wikiwand.com/en/Binary_code
[2] https://www.wikiwand.com/en/Binary_number
[3] https://www.kidscodecs.com/a-binary-numbers-tutorial-with-1-and-0/
[4] https://www.wikiwand.com/en/Claude_Shannon
推薦閱讀: