二進制

維基百科,自由的百科全書
跳到: 導覽搜尋
記數系統
印度-阿拉伯數字系統
西方阿拉伯數字
阿拉伯文數字
高棉數字
印度數字
波羅米數字
泰語數字
漢字文化圈記數系統
中文數字
閩南語數字
越南語數字
算籌
日語數字
朝鮮文數字
蘇州碼子
字母記數系統
阿拉伯字母數字
亞美尼亞數字
西里爾數字
吉茲數字
希伯來數字
希臘數字
阿利耶波多數字
其它記數系統
雅典數字
巴比倫數字
古埃及數字
伊特拉斯坎數字
瑪雅數字
羅馬數字
底數區分的進位制系統
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 20 60 64

數學數字電路中,二進制binary)數是指用二進制記數系統,即以2為基數的記數系統表示的數字。這一系統中,數通常用兩個不同的符號0(代表零)和1(代表一)來表示。以2為基數代表系統是二進位制的。數字電子電路中,邏輯門的實現直接應用了二進制,因此現代的計算機和依賴計算機的設備里都用到二進制。每個數字稱為一個比特(二進制位)。

歷史[編輯]

現代的二進制記數系統由戈特弗里德·萊布尼茨於1679年設計,在他1703年發表的文章《論只使用符號0和1的二進制算術,兼論其用途及它賦予伏羲所使用的古老圖形的意義》(法語:Explication de l'arithmétique binaire, qui se sert des seuls caractères 0 et 1 avec des remarques sur son utilité et sur ce qu'elle donne le sens des anciennes figures chinoises de Fohy)出現。與二進制數相關的系統在一些更早的文化中也有出現,包括古埃及古代中國古印度。中國的《易經》尤其引起了萊布尼茨的聯想。

 

荷魯斯之眼各部分所代表的算術值

埃及[編輯]

古埃及的計數員使用兩種不同的系統表示分數,一是埃及分數(與二進制記數系統無關),二是荷魯斯之眼分數(叫這個名字是因為很多數學史家相信這個系統所採用的符號可以排列成荷魯斯之眼,但這一點有爭議)。荷魯斯之眼分數是用來表示分數數量的穀物、液體等的二進制記數系統,在這一系統下,以赫卡特為單位的分數值表示成1/2、1/4、1/8、1/16、1/32和1/64等二進制分數的和。 這一系統的早期形式可以在埃及第五王朝(約公元前2400年)的檔案中找到,而發展完備的象形文字形式可追溯到埃及第十九王朝(約公元前1200年)。 古埃及做乘法的方式也與二進制數密切相關,約公元前1650年的萊因德數學紙草書中就能看到。這一計算方法中,要把1和乘數不斷翻倍,按被乘數的二進制表示從左列選出相應的2的冪次,並將右列的數相加。[1]

中國[編輯]

道教八卦圖

《易經》的歷史可以追溯到公元前9世紀,其中的二進制記號是用來解釋其四進制占卜技術的。 它基於道的陰陽二重性。八卦和一種64卦早在古代中國的周朝就被使用了,而它們分別與三位與六位二進制數字類似。 北宋學者邵雍用一種與現代二進制數字類似的形式重新排列了卦象,不過並不是為了數學應用。在邵雍方陣中,把實線看作1、斷線看作0,從右下到左上瀏覽,那麼卦象實際上就是0到63的二進制。

印度[編輯]

印度學者平甲拉(公元前兩世紀左右) 通過二進制方法來研究韻律詩。他的二進制中用到的是長短音節(一個長音節相當於兩個短音節),有些像摩爾斯電碼。與西方的位置表示法不同,平甲拉的系統中,二進制是從右往左書寫的。

萊布尼茨前的西方先驅[編輯]

1605年,弗朗西斯·培根提出了一套系統,可以把26個字母化為二進制數。此外他補充道,這個思路可以用於任何事物:「只要這些事物的差異是簡單對立的,比如鈴鐺和喇叭,燈光和手電筒,以及火槍和類似武器的射擊聲」。這對二進制編碼的一般理論有重要意義。(參見培根密碼

萊布尼茨和《易經》[編輯]

戈特弗里德·萊布尼茲

萊布尼茨關於二進制的論文全名是《論只使用符號0和1的二進制算術,兼論其用途及它賦予伏羲所使用的古老圖形的意義》(1703年)。類似於現代二進制計數系統,萊布尼茲的系統使用0和1。下面是萊布尼茲的二進制記數系統的一個例子:

 0 0 0 1 数值为
 0 0 1 0 数值为
 0 1 0 0 数值为
 1 0 0 0 数值为

萊布尼茲認為易經中的卦象與二進制算術密不可分。萊布尼茲解讀了易經中的卦象,並認為這是其作為二進制算術的證據。作為親華派,萊布尼茲關注易經,並饒有興致地注意到它的卦象與從0到111111的二進制數字有某種對應,並認為這種對應反映了中國的重大成就中展現的他所崇尚的數學哲學。萊布尼茲首次接觸到易經是在與法國耶穌會傳教士白晉的聯繫中。白晉1685年作為傳教士前往中國。 長期以來,人們對萊布尼茨發明二進制是否受到了伏羲八卦的影響爭議頗多。認為萊布尼茨未受伏羲八卦影響獨立發明二進制的理由主要是萊布尼茨在1679年(與白晉首次通信的二十多年)就撰寫了「二的級數」(De Progressione Dyadica)一文;而目前有學者傾向於認為萊布尼茨二進制的體系確源於伏羲八卦圖,原因在於1687年萊布尼茨看過柏應理[2]的《這個哲學家孔子》,書中便有伏羲八卦次序圖、方位圖和周文王六十四卦圖。此外,萊布尼茨還閱讀過1660年斯比賽爾出版的《中國文史評析》,其中亦有對《易經》和八卦的介紹。[3] 此外,萊布尼茲認為易經的卦象肯定了他所信仰的基督教的共相[4]一切數都可以用0和1創造出來,在萊布尼茲看來,這正象徵了基督教《聖經》所說的上帝從「無」創造「有」(creatio ex nihilo)。

(有一個概念)不容易傳授給異教徒:全能的上帝從無創造有。現在我們可以說,數字的起源是世上能最好展示和說明這種力量的事物,它以「一」和「零」或者說「無」的形式呈現,既樸素又簡練。

——萊布尼茨寫給魯道夫·奧古斯都公爵的信[4]

後來的發展[編輯]

喬治·布爾

1854年,英國數學家喬治·布爾發表了一篇里程碑式的論文,其中詳細介紹了一種代數化的邏輯系統,後人稱之為布爾代數。他提出的邏輯演算在後來的電子電路設計中起基礎性作用。[5]

1937年,克勞德·香農麻省理工大學完成了其電氣工程碩士學位論文,用繼電器和開關實現了布爾代數和二進制算術運算。論文題為《繼電器與開關電路的符號分析》(A Symbolic Analysis of Relay and Switching Circuits)[6],其中香農的理論奠定了數字電路的理論基礎。香農憑這篇論文於1940年被授予美國阿爾弗雷德·諾貝爾協會美國工程師獎。哈佛大學的哈沃德·加德納稱,香農的碩士論文「可能是本世紀最重要、最著名的碩士學位論文」。

1937年11月,任職於貝爾實驗室的喬治·斯蒂比茲[7]發明了用繼電器表示二進制的裝置。它是第一台二進制電子計算機。

運算規則[編輯]

四則運算[編輯]

  • 加法:00+00=00,00+01=01,01+00=01,01+01=10
  • 減法:0-0=0,1-0=1,1-1=0,10-1=01
  • 乘法:0×0=0,0×1=0,1×0=0,1×1=1
  • 除法:0÷1=0,1÷1=1

拈加法[編輯]

二進制的有一種特殊的算法,稱為拈加法。進行拈加法時,與進行加法無異,只是不需進行進位,在博弈論中被廣泛利用。

不同進位數轉換[編輯]

十進數轉成二進數[編輯]

整數部分,把十進制轉成二進制一直分解至商數為0。讀餘數從下讀到上,即是二進位的整數部分數字。 小數部分,則用其乘2,取其整數部分的結果,再用計算後的小數部分依此重複計算,算到小數部分全為0為止,之後讀所有計算後整數部分的數字,從上讀到下。
將59.25(10) 轉成二進制:

整数部分:
59 ÷ 2 = 29 ... 1
29 ÷ 2 = 14 ... 1
14 ÷ 2 =  7 ... 0
 7 ÷ 2 =  3 ... 1
 3 ÷ 2 =  1 ... 1
 1 ÷ 2 =  0 ... 1
小数部分:
0.25×2=0.5
0.50×2=1.0

也可以公式來計算

            59.2510= 101*10101+1001*10100+10*1010-1+101*1010-10
                   = 101*1010+1001+10/1010+101/1010/1010
                   = 110010+1001+(10+0.1)/1010
                   = 111011+0.01
                   = 111011.01

二進數轉成十進數[編輯]

將1001012轉換為十進制形式如下:

1001012 = [ ( 1 ) × 25 ] + [ ( 0 ) × 24 ] + [ ( 0 ) × 23 ] + [ ( 1 ) × 22 ] + [ ( 0 ) × 2 ] + [ ( 1 ) × 1 ]
1001012 = [ 1 × 32 ] + [ 0 × 16 ] + [ 0 × 8 ] + [ 1 × 4 ] + [ 0 × 2 ] + [ 1 × 1 ]
1001012 = 3710

數表[編輯]

十進制 0 1 2 3 4 5 6 7 8 9 10
二進制 0 1 10 11 100 101 110 111 1000 1001 1010
十進制 11 12 13 14 15 16 17 18 19 20 21
二進制 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101
十進制 22 23 24 25 26 27 28 29 30 31 32
二進制 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 100000

二進制化為八進制[編輯]

把二進制化為八進制也很容易,因為八進制以8為基數,8是2的冪(8=23),因此八進制的一位恰好需要三個二進制位來表示)。八進制與二進制數之間的對應就是上面表格中十六進制的前八個數。二進制數000就是八進制數0,二進制數111就是八進制數7,以此類推。

八進制 二進制
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

八進制轉為二進制:

658 = 110 1012
178 = 001 1112

二進制轉八進制:

1011002 = 101 1002 (三位一組) = 548
100112 = 010 0112 (用零填充 (密碼學),三位一組) = 238

八進制轉十進制:

658 = (6 × 81) + (5 × 80) = (6 × 8) + (5 × 1) = 5310
1278 = (1 × 82) + (2 × 81) + (7 × 80) = (1 × 64) + (2 × 8) + (7 × 1) = 8710

表示實數[編輯]

非整數可以借負指數冪表示;只要用基數點(十進制中,就是小數點)把負指數冪表示的部分隔開即可。例如,二進制數11.012

1 × 21 (1 × 2 = 2)
1 × 20 (1 × 1 = 1)
0 × 2−1 (0 × 12 = 0)
1 × 2−2 (1 × 14 = 0.25)

就是十進制數字3.25。

所有二進分數都對應一個「有窮」二進制數字——這一二進制表示的小數部分位數有限。其他有理數也有二進制表示,但不是有窮的,而是出現循環,即某個有限序列出現無數次。例如

= = 0.01010101012
= = 0.10110100 10110100 10110100...2

在其他基數的計數系統中,有理數的表示也是有窮或循環的。另一相似之處在於,如果我們有一個有窮表示,那麼它還會有其他的表示方式,例如幾何級數2−1 + 2−2 + 2−3 + ...的和既是1,也是0.111111...。

無限不循環二進制小數表示的是無理數。例如,

  • 0.10100100010000100000100…有某種模式,但循環節長度不固定,所以是無理數
  • 1.0110101000001001111001100110011111110…是2的平方根的二進制表示,也是一個無理數。它沒有可以看出的模式。參見無理數


  1. ^ 沒有乘法口訣表將會怎樣:古巴比倫乘法和古埃及乘法. Matrix67的博客
  2. ^ 柏應理(Philippe Couplet,1623-1693)比利時人,著名傳教士。參見維基英文條目:Philippe CoupletPhilippe_Couplet
  3. ^ 參見:萊布尼茨二進制與伏羲八卦圖考.胡陽,李長鐸.上海:上海人民出版社.2006.google book
  4. ^ 4.0 4.1 J.E.H. Smith. Leibniz: What Kind of Rationalist?. Springer. 2008: 415. ISBN 978-1-4020-8668-7. 
  5. ^ Boole, George. An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities Macmillan, Dover Publications, reprinted with corrections [1958]. New York: Cambridge University Press. 2009 [1854]. ISBN 978-1-108-00153-3. 
  6. ^ Shannon, Claude Elwood. A symbolic analysis of relay and switching circuits. Cambridge: Massachusetts Institute of Technology. 1940. 
  7. ^ 喬治·斯蒂比茲(George Stibitz ,1904-1995),美國,「數字計算機之父」。參見維基英文條目:George_Stibitz