細思細恐,人生就像是二進位,不是0就是1

2021-01-08 中學數學精準輔導

其實二進位真的是個有趣的東西,而且作為學習電腦基本常識的你,了解二進位的相關知識那是必備滴,相信我,看完今天這篇文章,你會get到很多姿勢,最後讀完覺得不錯的,請無情的點讚或轉發吧!

01二進位的前生

在眾多的數字中,除了π、e及虛數i,最神奇的數就是0和1了。在所有自然數中,這兩個數最小,但它們的屬性卻最豐富,功能也最強大。在現代生活裡,在你不經意中,0和1幾乎無處不在。在你收看電視節目、聽著音樂、拍攝照片或使用計算機時,都有無數的0和1在忙碌著;在超市各種商品包裝上、在圖書上的條形碼裡,0和1更是無處不在。0和1的強大功能和神奇特性使二進位技術功能得以實現。有了二進位,0和1成為一切數的源泉,它們可以包容一切數,其他數可以被它們取代,它們也可以轉化為任何數,它們的這一功能任何數都取代不了。

有人認為,最早的二進位思想源於古代中國。1660年,德國路德教會神學家斯比賽爾(Theophilus Spizelius)著有《論中國文化》一書,該書詳細介紹了中國的太極陰陽八卦圖,介紹了中國的「陰陽生二一,二一生八卦,八八六十四卦」的數學模型,有人認為其中就有「二進位」思想的「種子」。

西方也記載著德國數學家威廉·萊布尼茨的二進位思想。至今在德國圖靈的郭塔王宮圖書館裡,仍然保存著一份珍貴手稿,其標題為:「1與0,一切數字的神奇淵源。這是造物美妙的典範,因為,一切無非都來自上帝。」這是天才萊布尼茨的手跡。

二進位最適合邏輯運算,它只有兩個數碼,正好與邏輯代數中的「真」和「假」相吻合。二進位兩個數碼正好與邏輯命題中的「真(True)」、「假(False)」或稱為」是(Yes)」、「否(No)」相對應。

200多年前,沒有誰明白二進位的偉大,唯有萊布尼茨一眼就洞穿數理邏輯的終極奧義,當現在回溯AI的起源時,有些人將萊布尼茨視為真正的鼻祖。

如果看到今天二進位在人類文明中所佔據的位置,萊布尼茨可以對著遙遠的東方重複他曾經說過的話:二進位乃是具有世界普遍性的、最完美的邏輯語言。

萊布尼茨斷言,「二進位乃是世界最普遍、最完美的邏輯語言」。在萊布尼茨寫給若阿基姆·布韋的信中說:「第一天的伊始是1,也就是上帝;第二天的伊始是2……,到了第七天,一切都有了。所以最後的一天也是最完美的。因為此時,世間的一切已經被創造出來了。因此它被寫作為7,也就是111(二進位中的111等於十進位的7)。這種「完美」僅僅用0和1來表達時才能理解——為什麼第7天最完美?為什麼7是最神聖的數字?特別值得注意的是它(第7天)的特徵(寫作二進位的111)與三位一體的關聯。」

萊布尼茨的朋友、傳教士鮑威特(J. Bouuet)曾給他寄來一本拉丁文譯本的《易經》。《易經》成書於中國的商代,流傳到歐洲已經是數千年之後。1703年4月1日,萊布尼茨看到了這本書,他驚奇地發現,《易經》中的陰爻和陽爻中隱含二進位思想。很可惜的是,雖然在古代中國,尤其是先秦時期,產生了一些偉大的思想家,但他們的思想過多地引向到人際關係之上,而沒有像希臘那樣走向科學和哲學的道路。

如果說,作為原始思想,其中含有二進位的萌芽主要用在了佔卜之上,並沒有從數學理論上給予拓展,也沒有為二進位建立自身的運算法則,更沒有建立二進位與其他進位間的換算關係,那自然不可能在科學技術上發揮它的作用,這是非常可惜的。

19世紀中葉,英國數學家喬治·布爾(George Boole)為了研究邏輯運算而構思了一個關於0和1的代數系統,用它們作為基礎符號,描述所需要表述的命題或概念,由此創建布爾代數,又叫邏輯代數。它與普通代數有所不同。在普通代數中,字母可以表示各種數,可以是各種實數,也可以是複數,甚至是四元數等,普通代數可以對字母進行各種數學運算。但是在布爾代數中,字母只能代表兩種對立的狀態,如0或1、是或非、真或假等,而對字母所做的也只是邏輯運算。這樣一來,布爾代數就為數字計算機的開關電路設計提供了重要的數學方法。

02二進位在邏輯門電路實現算數運算

在數字電路中,可以用電路的狀態來表示數碼。然而,要讓電路狀態表示0~9這10個基本數碼,在技術上是極為困難的。電路可以有「通」與「不通」,或者電壓「高」與「低」等兩種狀態,而這兩種狀態就可以與0或1對應。如果利用數字電路研究命題的邏輯,而命題也只有兩種對立狀態,如「真」和「假」,在計算機運行的時候,程序就像一系列「真」或「假」的命題在執行邏輯推理,當命題進入電路的時候,按照布爾代數,它們或者將電路打開,或者關閉。例如,當兩個「真」命題進入電路時,就讓電路打開,但是當一個「假」的命題進入電路時,就讓電路關閉。

利用布爾代數,就可以把數以百計的電路集合起來,編寫出各種充滿想像力的電腦程式來。所以,二進位在數字電路中不僅具有可行性、簡易性,其邏輯也具有可靠性。

03計算機為什麼會用二進位?

如今馮·諾依曼所發展的二進位原理、布爾代數原理、開關電路原理和存儲程序控制原理等,已經成為計算機普遍的工作原理,而且是電子學、計算機硬體和軟體應用的理論基礎。

計算機為什麼會用二進位?

技術上容易實現

用雙穩態電路表示二進位數字0和1是很容易的事情

● 可靠性高

二進位中只使用0和1兩個數字,傳輸和處理時不易出錯

● 運算規則簡單

與十進位數相比,二進位數的運算規則要簡單得多,這不僅可以使運算器的結構得到簡化,而且有利於提高運算速度

● 與邏輯量相吻合

二進位數0和1正好與邏輯量「真」和「假」相對應,用二進位數表示二值邏輯顯得十分自然

● 二進位數與十進位數之間的轉換相當容易

人們使用計算機時可以仍然使用自己所習慣的十進位數,而計算機將其自動轉換成二進位數存儲和處理,輸出處理結果時又將二進位數自動轉換成十進位數,這給工作帶來極大的方便

如果計算機只存儲二進位數據,那麼它如何表示字符呢?計算機使用的是字符集,將字符映射為整數。早期,字符集只用 8 位表示。即使是現在,在字符模式下運行時,IBM 兼容微機使用的還是 ASCII(讀為「askey」)字符集。

ASCII碼使用指定的7位或8位二進位數組合來表示128或256種可能的字符

標準ASCII碼也叫基礎ASCII碼,使用7位二進位數來表示所有的大寫和小寫字母數字0到9、標點符號,以及在美式英語中使用的特殊控制字符ASCII分配數值。

04二進位的出現的意義

據程式設計師說,「世界上有10種人,一種是懂二進位的,另一種是不懂二進位的。」

Get到?二進位的世界是黑白分明的,它只有兩種可能,0或者1。一步從無到有,下一步從有到無。二進位是說給計算機的語言,別去試圖讓它理解為什麼薛丁格的貓有生死雙重性,也別告訴它黑白之間還有多少度灰,正如它不會去猜你的心情是好是壞還是百無聊賴。計算機因電子電路只能開或關的性質,一切運算只能憑藉二進位。但是就靠這簡單粗暴的非是即非的邏輯,它可以做出複雜的程序,恢宏的遊戲,播放感人的電影,把浩瀚的博物館搬到屏幕上,還可以模仿人類情感,比人類更智能。只是它的原理最終還是要回到0和1。很久之前在某個我剛睡醒的初中課堂上,數學老師在講一道奧利匹克加分題,數學不好的我自知實在沒必要聽這麼難的題,本想繼續睡過去,可是他突然說,你知道,世界上最複雜的問題也能被拆分成許多簡單的問題,只不過是很多簡單的問題罷了。我一下子清醒過來了,第一次想聽聽那道跟我沒關係的題,也許我也能懂呢。如果世間一切複雜的事都能被化解成一系列的yes和no,也許我們不用有壓力,花時間去慢慢分解即可。

可以說二進位的出現,促進了計算技術的發展,改變了人們對自然界的認識。它首先促使人們思考究竟什麼是算法,它的本質又是什麼。長期以來,人們總以為「計算」或「算法」一直是屬於數字或符號的專有概念,但在計算機廣泛使用的今天,這個概念已經泛化到了整個自然界。

畢達哥拉斯曾說「萬物皆數」。數學是萬物的基礎,數學是現實世界的核心。從實質上說,任何一個自然過程都是按照一定的規則進行信息處理的過程,其本質上都體現了計算或算法的嚴格特徵。

現實世界萬事萬物,從非生命到生命,從感覺到意識,甚至整個世界的進化過程,它們的區別只不過是算法的複雜程度不同而已。現實世界具有多樣性和複雜性,二進位的出現,使人類所在的世界有了進行計算的可能。在實現對多樣性和複雜性的計算中,0和1數字的神秘性就更加耐人尋味。

相關焦點

  • 古廣祥《閒把人生細思量》
    說實在的,我曾為不少人作序題跋,但最令餘興奮和愛不釋手的就是這本《閒把人生細思量》,該書題材新穎,對聯副副感人。言論關時務,篇章見國風。讀了這些聯句,讓人回憶起青春歲月,同時也讓人很清晰地看到書中的一條紅線,那就是作者懲惡揚善、愛國親友、針砭時弊。廣祥先生從時政、人物、風物、藝術、醫藥等多個角度體現出自己的社會責任感。創作是認識世界、思考人生的最佳方式。
  • 二進位、八進位、十進位與十六進位
    基數:基數是指一種進位中組成的基本數字,也就是不能再進行拆分的數字。二進位是0和1; 八進位是0-7;十進位是0-9;十六進位是0-9,A-F(大小寫均可)。也可以這樣簡單記憶,假設是n進位的話,基數就是【0,n-1】的數字,基數的個數和進位值相同,二進位有兩個基數,十進位有十個基數,依次類推。
  • 二進位、十進位和十六進位
    二進位就是逢二進位,它的一個位只有兩個值:0 和 1,但它卻是實現計算機系統的最基本的理論基礎,計算機(包括單片機)晶片是基於成萬上億個的開關管組合而成的,他們每一個都只能有開和關兩種狀態,再難找出第三個狀態了(不要辯解半開半關這個狀態,它是不穩定態,是極力避免的),所以他們只能對應於二進位的 1 和 0 兩個值,而沒有 2、3、4......,理解二進位對於理解計算機的本質很有幫助。
  • python進位轉換:十進位轉二進位的用法
    我們在學習python時候肯定會碰到關於進位轉換,其實這是非常簡單的,這個就像小學學習數學乘法口訣意義,只要記住轉換口訣即可輕鬆應用,一起來看下具體的操作內容吧~一、python進位轉換dec(十進位)—> bin(二進位)dec(十進位)—>
  • 進位詳解:二進位、八進位和十六進位
    因為逢十進一(滿十進一),也因為只有 0~9 共十個數字,所以叫做十進位(Decimalism)。十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。
  • 二進位,八進位,十進位,十六進位之間的轉換
    計算機中的二進位則是一個非常微小的開關,用「開」來表示1,「關」來表示0。1234[10進位] 0 1 2 3 4 5 6 7 8 9 0 當數位上的值超過9就要進11000+200+30+4=1*103+2*102+3*101+4*100=12341011[2進位] 0 1 當數位上的值超過1就要進11*23+0*22+1*21+1*20=8
  • 二進位轉換十進位,十進位轉換二進位
    如果把一個十進位的數轉換成二進位的數 , 直接把數除 以二 , 餘數為一就寫1 , 整除 , 就寫0 , 一直除完為止
  • 十進位轉二、八、十六進位
    也就是說,將正的十進位數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然後在旁邊標出各步的餘數,最後倒著寫出來,高位補零就OK咧。哎呀,還是舉例說明吧,比如42轉換為二進位,如圖1所示操作。二進位如何轉十進位,十進位如何轉二進位42除以2得到的餘數分別為010101,然後咱們倒著排一下,42所對應二進位就是101010.
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 十進位與其他進位之間怎樣轉化
    關於數位進位之間的轉化,因為計算機方面會涉及到這裡的知識,可以說算是學計算機的基本知識,可是有時候理論性的知識並不會細講,或者根本不講,所以我們來看看怎麼換算因為各種進位之間的轉化原理是一樣的,所以就以二進位來作為例子,就是以十進位轉化為二進位,二進位轉化為十進位因為存在整數和小數部分
  • 關於二進位世界的秘密
    一個引腳可以表示一個 0 或 1 ,所以二進位的表示方式就變成 0、1、10、11、100、101 等,雖然二進位數並不是專門為引腳來設計的,但是和 IC 引腳的特性非常吻合。計算機的最小集成單位為位,也就是比特(bit),二進位數的位數一般為 8位、16位、32位、64位,也就是 8 的倍數,為什麼要跟 8 扯上關係呢?
  • 二進位與八進位互相轉換
    上節課我們學習了二進位轉換十進位,那二進位與常用的八進位之間是如何互相轉換的呢?下面我們先看看二進位與八進位的轉換方法。
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    將二進位、八進位、十六進位轉換為十進位二進位、八進位和十六進位向十進位轉換都非常容易,就是「按權相加」。所謂「權」,也即「位權」。假設當前數字是 N 進位,那麼:更加通俗的理解是,假設一個多位數(由多個數字組成的數)某位上的數字是 1,那麼它所表示的數值大小就是該位的位權。
  • scratch3.0圖形化編程軟體解決「進位轉換(二進位)」問題
    想要回顧的請移步「百度百科」,嘻嘻首先 我們來看一下1~16 的一個二進位與十進位的對照表格:以上表格就是0-16的表達對照這種方法就是我之前文章的「思路1」,感興趣的網友們可以去看一下我之前的文章連結→scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)這次我們主要說一下「短除法」思路解決十進位轉換為二進位
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 二進位與周易八卦太像了,但用二進位算命準確率竟然是100%
    電腦中的世界都是由0和1組成的,現實中的世界按八卦來講是由陰和陽組成的。陰陽變化出了八卦,電腦最開始也是先由八進位進行工作的。發展到《周易》這本書成了64卦,而我們現在用的作業系統幾乎也都是64位的。周易八卦流傳最廣的是算命,但準確率並不高,約70%,孔子都說吾百佔而七十當,可見這個作業系統從一開始就是一個不精確的東西。二進位也可能算命,準確率竟然是100%,遠高於周易八卦,下面我們開算,假設有100瓶水,其中一瓶是無色無味的毒藥,斷那一瓶是毒藥。
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是28的二進位了。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    如果永遠不能為零,就同十進位數的四捨五入一樣,按照要求保留多少位小數時,就根據後面一位是0還是1,取捨,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。,但是二進位只有0和1兩個,於是就出現0舍1入。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    ①、數碼:用來表示進位數的元素。                                二進位:0,1。                                八進位:0,1,2,3,4,5,6,7                                十進位:0,1,2,3,4,5,6,7,8,9。
  • 二進位、八進位和十六進位之間轉換
    因為逢十進一(滿十進一),也因為只有 0~9 共十個數字,所以叫做十進位(Decimalism)。十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。