二進(jìn)制
二進(jìn)制來(lái)自哲學(xué),自然萬(wàn)物兩兩相對(duì)宾娜,白天與黑夜批狐、太陽(yáng)和月亮、蒼天與大地前塔、男人和女人嚣艇、寒冷與炎熱、甘甜和苦澀……我國(guó)傳統(tǒng)文化中的陰陽(yáng)學(xué)說(shuō)华弓、太極八卦食零,都是在講這些自然的本質(zhì)。
不光中國(guó)寂屏,在很久很久以前贰谣,世界各地的文明也都或多或少意識(shí)到了二進(jìn)制的意義娜搂,只是除了參悟哲學(xué)道理,一直沒(méi)有用到數(shù)學(xué)中去吱抚。
直到17~18世紀(jì)涌攻,數(shù)學(xué)上的二進(jìn)制才由萊布尼茨首次提出。萊布尼茨首先是位偉大的哲學(xué)家频伤,至簡(jiǎn)的理念始終貫穿在他的哲學(xué)和數(shù)學(xué)研究中恳谎。他認(rèn)為,任何數(shù)字都可以在0和1的基礎(chǔ)上產(chǎn)生憋肖。他對(duì)中國(guó)的哲學(xué)文化有著十分濃厚的興趣因痛,當(dāng)了解到《易經(jīng)》時(shí),不禁感嘆其中充滿智慧的符號(hào)系統(tǒng)和他的二進(jìn)制理論竟如此相仿[1]岸更。
那么鸵膏,“逢2進(jìn)1”的二進(jìn)制如何表示數(shù)字呢?我們知道怎炊,對(duì)于一個(gè)十進(jìn)制數(shù)谭企,從最右側(cè)的個(gè)位開(kāi)始,越往高位评肆,數(shù)位上的數(shù)字所代表的值越大债查,相鄰數(shù)位上相同的數(shù)字所代表的值相差10倍。比如1024中瓜挽,個(gè)位上的4代表3盹廷,十位上的2代表20,千位上的1則代表1000久橙,用數(shù)學(xué)語(yǔ)言表達(dá)就是:
總結(jié)而言俄占,就是從右往左數(shù),第n位上的數(shù)字所代表的值淆衷,是該數(shù)字與10n-1的乘積缸榄。二進(jìn)制示數(shù)也遵循這一規(guī)則。對(duì)于一個(gè)全是1的二進(jìn)制數(shù)祝拯,從右往左甚带,第1位表示20,第2位表示21鹿驼,第3位表示22欲低,第4位表示23,第5位表示24畜晰,以此類推砾莱,第11位表示210,即1024凄鼻。
下表羅列了部分常用的二進(jìn)制數(shù)腊瑟,在計(jì)算機(jī)領(lǐng)域聚假,為了方便閱讀和處理,常常會(huì)以4位為單位在二進(jìn)制串前補(bǔ)零闰非。
十進(jìn)制數(shù) | 二進(jìn)制形式 | 補(bǔ)零后的二進(jìn)制形式 |
---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 10 | 0010 |
3 | 11 | 0011 |
4 | 100 | 0100 |
5 | 101 | 0101 |
6 | 110 | 0110 |
7 | 111 | 0111 |
8 | 1000 | 1000 |
9 | 1001 | 1001 |
16 | 1 0000 | 0001 0000 |
32 | 10 0000 | 0010 0000 |
64 | 100 0000 | 0100 0000 |
128 | 1000 0000 | 1000 0000 |
256 | 1 0000 0000 | 0001 0000 0000 |
512 | 10 0000 0000 | 0010 0000 0000 |
1024 | 100 0000 0000 | 0100 0000 0000 |
萊布尼茨還設(shè)想過(guò)一種可以進(jìn)行二進(jìn)制加法的機(jī)械計(jì)算器膘格,這種機(jī)器需要有一排可以開(kāi)閉的洞口,洞口打開(kāi)表示1财松,洞口關(guān)閉表示0瘪贱,通過(guò)往洞中扔小彈珠表示加法,每個(gè)洞中最多只能存放1顆彈珠辆毡,每滿2顆它們就會(huì)一起從機(jī)器中滾出來(lái)菜秦,洞口也相應(yīng)關(guān)閉,高一位洞口則打開(kāi)舶掖。
布爾代數(shù)
萊布尼茨堅(jiān)信球昨,人類的思想和數(shù)字一樣可以化繁為簡(jiǎn)——所有思想都可以分解為數(shù)量不多的簡(jiǎn)單思想。這些簡(jiǎn)單思想通過(guò)一些既定規(guī)律眨攘,可以組成任意的復(fù)雜思想主慰,就像數(shù)學(xué)運(yùn)算一樣。當(dāng)兩個(gè)人發(fā)生了爭(zhēng)執(zhí)鲫售,他們可以把自己的觀點(diǎn)通過(guò)數(shù)學(xué)計(jì)算的方式梳理出來(lái)共螺,誰(shuí)對(duì)誰(shuí)錯(cuò)就一目了然了。
為了“計(jì)算”思想龟虎,萊布尼茨闡述了后來(lái)被稱為合攘Ы鳌(conjunction)、析壤鹜住(disjunction)、否定(negation)等的邏輯運(yùn)算規(guī)則拱雏,成為數(shù)理邏輯(mathematical logic)最早的探索者之一棉安。
但邏輯運(yùn)算在數(shù)學(xué)上的系統(tǒng)性定義,要等到19世紀(jì)由英國(guó)數(shù)學(xué)家喬治·布爾(George Boole)首次提出铸抑。布爾分別在1847年和1854年發(fā)表了著名的《邏輯的數(shù)學(xué)分析》和《思維規(guī)律的研究》贡耽,將數(shù)學(xué)中的代數(shù)方法引入到邏輯學(xué)中,被后人稱為布爾代數(shù)(Boolean algebra)鹊汛,邏輯運(yùn)算因而也叫布爾運(yùn)算蒲赂。
下面通過(guò)一個(gè)例子介紹簡(jiǎn)單一下邏輯運(yùn)算若皱,假設(shè)有X镊叁、Y兩個(gè)命題。
X:?jiǎn)讨巍げ紶柊l(fā)明了二進(jìn)制走触。
Y:?jiǎn)讨巍げ紶杽?chuàng)立了布爾代數(shù)晦譬。
顯然,X命題是錯(cuò)的互广,Y命題是對(duì)的敛腌。在邏輯學(xué)中,我們稱:X命題為假惫皱,Y命題為真迎瞧。如果用連詞將X、Y兩句話連起來(lái)說(shuō)呢逸吵?
比如:?jiǎn)讨巍げ紶柊l(fā)明了二進(jìn)制且創(chuàng)立了布爾代數(shù)凶硅。這句話是錯(cuò)的,即“X且Y”的組合命題為假扫皱。
再比如:?jiǎn)讨巍げ紶柊l(fā)明了二進(jìn)制或創(chuàng)立了布爾代數(shù)足绅。這句話是對(duì)的,即“X或Y”的組合命題為真韩脑。
這就是邏輯學(xué)中的合取與析取氢妈,也稱邏輯與和邏輯或。
當(dāng)然段多,也有對(duì)單個(gè)命題的邏輯運(yùn)算首量,比如:?jiǎn)讨巍げ紶枦](méi)有發(fā)明二進(jìn)制。這句話是對(duì)的进苍,即“非X”為真加缘。
這就是邏輯學(xué)中的否定,也稱邏輯非觉啊。
與拣宏、或、非是3種最基本杠人、最常用的邏輯運(yùn)算勋乾。將它們組合起來(lái),還可以形成與非嗡善、或非辑莫、異或、同或等復(fù)雜邏輯運(yùn)算罩引。歷史上各吨,布爾和許多其他邏輯學(xué)家曾使用過(guò)各種層出不窮的符號(hào)來(lái)表示它們,如今蜒程,我們常用下表中的表達(dá)形式绅你。
邏輯運(yùn)算 | 英文縮寫 | 表達(dá)式 |
---|---|---|
與 | AND | |
或 | OR | |
非 | NOT | |
與非 | NAND | |
或非 | NOR | |
異或 | XOR | |
同或 | XNOR |
其中伺帘,異或和同或其實(shí)意如其名,只是表達(dá)式有點(diǎn)抽象忌锯,它們的展開(kāi)式十分容易理解:
而邏輯命題的真假像極了二進(jìn)制中的1和0伪嫁,布爾代數(shù)自然而然選擇用1表示真、0表示假偶垮。
經(jīng)過(guò)簡(jiǎn)單的邏輯推演张咳,我們就能得到這些邏輯運(yùn)算在所有情況下的結(jié)果:
X | Y | 與 | 或 | 非X | 與非 | 或非 | 異或 | 同或 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
不難發(fā)現(xiàn),邏輯運(yùn)算和二進(jìn)制運(yùn)算有著極高的一致性似舵,除了有點(diǎn)違反直覺(jué)的:
更巧合的是脚猾,邏輯運(yùn)算和數(shù)學(xué)運(yùn)算一樣滿足交換律、結(jié)合律和分配律等各種運(yùn)算規(guī)則砚哗,比如:
數(shù)字電路
20世紀(jì)龙助,隨著繼電器電路的發(fā)展,許多科學(xué)家開(kāi)始將二進(jìn)制蛛芥、布爾代數(shù)和電路聯(lián)系到一起提鸟,最終,由美國(guó)一位名為克勞德·香農(nóng)(Claude Shannon)的數(shù)學(xué)家做出了完整闡釋仅淑。1938年称勋,就讀于麻省理工學(xué)院的香農(nóng)發(fā)表了他那篇著名的碩士論文《繼電器與開(kāi)關(guān)電路的符號(hào)分析》,奠定了數(shù)字電路的理論基礎(chǔ)涯竟。
開(kāi)關(guān)電路就是有接通和斷開(kāi)兩種狀態(tài)的電路醉鳖,繼電器電路就是一種典型的開(kāi)關(guān)電路捡硅。當(dāng)我們用X、Y等字母表示開(kāi)關(guān)電路盗棵,將兩者串聯(lián)就可以表示邏輯與,將兩者并聯(lián)就可以表示邏輯或北发。
那么邏輯非如何如何實(shí)現(xiàn)呢纹因?還記得有兩個(gè)靜觸點(diǎn)的電磁繼電器嗎奢方?如果X表示常閉觸點(diǎn)所在的工作電路再芋,便是常開(kāi)觸點(diǎn)所在的工作電路,兩者的通斷永遠(yuǎn)互斥瓢喉。
有了與狱庇、或惊畏、非3種基礎(chǔ)邏輯電路恶耽,異或等復(fù)雜邏輯電路也就不難搭建了。
如此一來(lái)颜启,電路就徹底數(shù)字化了偷俭,原本物理的連接可以用數(shù)學(xué)來(lái)表示,是為數(shù)字電路缰盏。香農(nóng)認(rèn)為涌萤,基于布爾代數(shù),再?gòu)?fù)雜的電路都可以用表達(dá)式條理清晰地設(shè)計(jì)出來(lái)口猜,更重要的是可以等效化簡(jiǎn)负溪。香農(nóng)的研究成為后來(lái)二進(jìn)制機(jī)電計(jì)算機(jī)和電子計(jì)算機(jī)強(qiáng)大的理論支柱。
邏輯門
邏輯電路發(fā)展成熟后济炎,工程師們更多地把它們作為一種電路中的元器件(而不是電路本身)使用川抡。他們不關(guān)心這些元器件的內(nèi)部實(shí)現(xiàn),更關(guān)注當(dāng)代表0或1的信號(hào)從它們的輸入端進(jìn)去须尚,從輸出端出來(lái)的是0還是1崖堤。這種通過(guò)邏輯電路實(shí)現(xiàn)二進(jìn)制信號(hào)轉(zhuǎn)換的元器件稱為邏輯門(logic gate),門的概念很形象恨闪,二進(jìn)制數(shù)據(jù)可以從門通過(guò)倘感,也可能被門擋住,龐雜的計(jì)算機(jī)電路正是靠著一扇扇這樣的門組合而成的咙咽。下圖為IEEE和IEC[2]標(biāo)準(zhǔn)中規(guī)定的邏輯門符號(hào)老玛,統(tǒng)一的矩形表示更有利于繪制復(fù)雜的集成電路,信號(hào)從矩形左側(cè)進(jìn)入钧敞,從矩形右側(cè)輸出蜡豹。
組合邏輯電路
邏輯門像一塊塊標(biāo)準(zhǔn)化的積木,我們可以用這些積木靈活地搭建出實(shí)現(xiàn)各種功能的組合邏輯電路溉苛。舉個(gè)最簡(jiǎn)單的例子——二進(jìn)制加法器镜廉。要實(shí)現(xiàn)兩個(gè)二進(jìn)制數(shù)的相加,首先要實(shí)現(xiàn)單個(gè)數(shù)位的兩兩相加愚战。用A和B表示兩個(gè)二進(jìn)制數(shù)某一位上的值娇唯,Cin表示來(lái)自低位的進(jìn)位值,S和Cout表示A+B+Cin之后該位的值和向高位產(chǎn)生的進(jìn)位值寂玲,得單數(shù)位的加法真值表:
A | B | Cin | S | Cout |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
用2個(gè)異或門和3個(gè)與非門即可實(shí)現(xiàn)這一邏輯塔插,有興趣的讀者可以取幾組值驗(yàn)證一下。二進(jìn)制數(shù)有多少位拓哟,就需要多少個(gè)圖中的邏輯電路想许,相鄰數(shù)位的低位Cout與高位Cin相連,最低位的Cin永遠(yuǎn)為0。
減法以及其他更復(fù)雜的運(yùn)算流纹,乃至控制邏輯也可以如法炮制糜烹。
最重要的是,開(kāi)關(guān)電路僅僅是邏輯電路的實(shí)現(xiàn)途徑之一漱凝,其實(shí)不論任何材料疮蹦,所組成的基礎(chǔ)元件只要能表達(dá)出兩種狀態(tài)、能在兩種狀態(tài)之間切換碉哑,并能將狀態(tài)傳遞給其他基礎(chǔ)元件挚币,都可以用來(lái)實(shí)現(xiàn)邏輯電路以及邏輯門。邏輯門一旦實(shí)現(xiàn)扣典,二進(jìn)制計(jì)算機(jī)的建造就像搭積木一樣簡(jiǎn)單了妆毕。這種基礎(chǔ)元件的等效性,是可以用不同材料來(lái)建造計(jì)算機(jī)的本質(zhì)原因贮尖。在本章笛粘,我們甚至?xí)?jiàn)到純機(jī)械的邏輯門,那是建筑二進(jìn)制計(jì)算機(jī)的第一批積木湿硝,它們尚與電路和電子無(wú)關(guān)薪前,而是由鋼鐵制成的。
參考文獻(xiàn)
- Wikipedia. Gottfried Wilhelm Leibniz[EB/OL].
- Daniel R L. Development of the Binary Number System and the Foundations of Computer Science[J]. The Mathematics Enthusiast, 2014, 11(3):513-540.
- Boole G. The Mathematical Analysis of Logic[M]. New York: Philosophical Library, 1948.
- 黃耀樞. 布爾與布爾代數(shù)[J]. 自然辯證法研究, 1985(4):36-43.
- Wikipedia. Claude Shannon[EB/OL].
- 百度百科. 克勞德·艾爾伍德·香農(nóng)[EB/OL].
- Shannon C E. A Symbolic Analysis of Relay and Switching Circuits[D]. Boston: University of Michigan, 1938.
- Wikipedia. Logic gate[EB/OL].
- PBS Digital Studios. How Computers Calculate - the ALU[EB/OL].
- Wikipedia. Adder (electronics)[EB/OL].
-
關(guān)于萊布尼茨是獨(dú)立發(fā)明的二進(jìn)制关斜,還是受了《易經(jīng)》啟發(fā)的爭(zhēng)論由來(lái)已久示括,事實(shí)上,二進(jìn)制在很多文化中都早有出現(xiàn)痢畜,也有很多先人對(duì)它進(jìn)行過(guò)思考和探討垛膝,二進(jìn)制是人類文明發(fā)展到一定程度的必然結(jié)果,只是需要某個(gè)人把它系統(tǒng)地整理出來(lái)而已丁稀,而萊布尼茨就是這個(gè)人吼拥。 ?
-
IEC:國(guó)際電工委員會(huì)(International Electrotechnical Commission),世界上成立最早的電工標(biāo)準(zhǔn)化機(jī)構(gòu)线衫,在電子電氣領(lǐng)域制定國(guó)際標(biāo)準(zhǔn)凿可。 ?