第十二章 世界毀滅以後

  隨著現實世界的逐漸毀滅,林易東所在的遊戲世界也在逐漸毀滅。

  而在現實世界徹底毀滅之前,林易東所在的遊戲時間便先一步徹底毀滅了。

  四周到處都是「0」和「1」,以及世界毀滅後留下的一堆殘渣。

  林易東隨手撿起一塊塗鴉轉頭,而後將其捏成了一堆的「0」和「1」。

  林易東隨手撈起一把「0」和「1」,而後看著它們在手裡靜靜地躺著。

  本書首發天天看小說->𝚝𝚝𝚔.𝚝𝚠,提供給你無錯章節,無亂序章節的閱讀體驗

  事實證明,「0」和「1」並不是沙子。

  但也正因為如此,林易東心想,也許自己可以用「0」和「1」整點啥。

  整根火柴?

  不對,應該先弄一些基本構造。

  如此想著,林易東開始試著撿起一些「0」和「1」,並將他們拼湊在一起。

  「0」後面加個「1」,「1」後面加個「0」,「0」後面加個「0」,「1」後面加個「1」,諸如此類。

  「0」是0,「00」是0,「000」是0;「0」是0,「01」是1,「011」是3;「1」是1,「10」是1,「100」是1;諸如此類。

  「計算機語言?」

  林易東眼前一亮,

  「二進位?!」

  林易東開始在自己腦子裡不斷地尋找著,

  「也許我真的可以整點啥。」

  林易東清楚的記得,計算機能處理二進位,二進位是處理器的「母語」。

  或者說,它們只能理解二進位,這叫「機器語言「或「機器碼「。

  在計算機早期階段,人們必須用機器碼寫程序。

  具體來講,會先在紙上寫一個「高層次版」。

  比如,偽代碼。

  而在紙上寫好後,他們便會用「操作碼錶」把偽代碼轉成二進位機器碼。

  一頓操作後,他們便可以將自己想要的程序餵入計算機並運行。

  但這麼實在過於繁瑣,所以人們很快就厭煩了。

  於是,人們整出了「助記符」。

  「助記符」後面緊跟數據,形成完整指令。

  當然,CPU表示:

  「我根本不能理解文字,我只能理解二進位。」

  但這不是問題,人們很快就解決了它。

  人們意識到,他們可以寫二進位程序來幫忙。

  它可以讀懂文字指令,自動轉成二進位指令。

  這種程序呢,它就叫彙編器。


  隨著時間推移,彙編器有越來越多功能,讓編程更容易。

  林易東記得,其中一個功能是自動分析JUMP地址。

  然而,即使彙編器有這些厲害功能,比如自動跳轉。

  但是,彙編只是修飾了一下機器碼。

  想著想著,林易東想到了更多東西。

  林易東想到了紡織業,以及雅卡爾織布機。

  當時的人如果只想織一塊紅色大桌布,可以直接放紅線進織布機。

  但如果想要圖案怎麼辦?

  比如條紋或者方格。

  這時,工人就需要每隔一會兒調整一次織布機。

  因為非常消耗勞動力,所以圖案紡織品很貴。

  而特定位置有沒有穿孔,決定了線是高是低,橫線是從上還是從下穿過。

  為了讓每行圖案不同,紙卡連成長條,形成連續指令。

  而這,也許就是最早的編程。

  事實證明,穿孔紙卡便宜、可靠、也易懂。

  近一個世紀後,穿孔紙卡被廣泛用於人口普查。

  一張卡存一個人的信息,比如性別、婚姻狀況、子女數量、出生地等等。

  針對每個問題,人口普查工作者會在對應位置打孔。

  當卡片插入匯總機,孔會讓對應總和值「+1」。

  可以插入整個國家人口的卡片,在結束後得到各個總值。

  值得注意的是,早期匯總機不算計算機,因為它們只做一件事。

  那就是匯總數據,操作固定,不能編程。

  穿孔紙卡存的也不是程序,而是數據。

  之後很多年,這些機器被不斷加強。

  可以做減、乘、除,甚至可以做一些小決定。

  舉個例子,比如決定何時執行某指令。

  為了正確執行不同計算,程式設計師發現自己需要某種控制面板。

  他們構思了一種控制面板,在這塊面板上有很多小插孔。

  他們希望自己可以插電線,讓機器的不同部分互相傳數據和信號。

  但不幸的是,這意味著運行不同程序要重新接線。

  所以程式設計師們不斷改善著「插線板」,並最終使它變成了可拔插的。

  這一創舉,讓編程更方便,也可以給機器插入不同程序。

  比如,一個插線板算銷售稅,另一個算工資單。

  某段時間內,這樣做非常的流行。

  但因為早期計算機非常昂貴,停機幾個星期只為換程序,這一點人們完全無法接受。

  因此,人們急需更快、更靈活的新方式來編程。

  「是什麼呢?」

  一邊回想著自己當初上課時看的書,林易東的雙手一邊也在無意識的撥動著,

  本小章還未完,請點擊下一頁繼續閱讀後面精彩內容!

  「到底是什麼呢?」

  對了,是因為內存變得價格下降,容量上升。

  於是人們發現,與其把程序存在插線板,存在內存似乎可行。

  而且這樣做,程序也更易於修改、也更方便CPU快速讀取。

  而這類機器,似乎叫做「存儲程序計算機」。

  如果內存足夠,不僅可以存要運行的程序,還可以存程序需要的數據。

  包括程序運行時產生的新數據,程序和數據都存在一個地方。

  「叫啥來著?」

  林易東撓了撓下巴,

  「啥啥諾啥啥曼結構?」

  命名好像是來自一個傑出的數學家和物理學家,那位老兄好像曾說過:

  「我在思考比炸彈重要得多的東西,計算機。」

  「我在思考比計算機重要得多的東西,造物。」

  如此想著,林易東看向了自己身前這台筆記本。

  打開筆記本後,林易東發現裡面啥都沒有。

  撓了撓頭皮後,林易東把筆記本合上了。

  林易東很清楚,編程的目的是完成既定的需求。

  換言之,編程的過程就是一個不斷遇到問題、解決問題並最終滿足需求的過程。

  而在完成需求的過程中所遇到的問題,它們被稱為風險。

  一名程式設計師如果可以提前識別風險,並會在真正開始編碼之前解決掉風險,那麼他就算是邁入了架構師的門檻。

  解決複雜問題的一個重要途徑是對問題進行拆解,將其轉換為簡單問題或已知問題,並逐一解決。

  人類目前所有的知識體系,都是建立在人類對這個世界的認知中。

  計算機的整個知識體系,自然也不例外。

  這也就意味著在編程中所遇到的問題,基本上都是在認知範圍內可以解決的。

  甚至可以借鑑一些特別樸素的生活經驗,來幫助人們尋找解決問題的方向。

  想到這裡,林易東再次想到了「一生二、二生三、三生萬物」。

  古人觀察到自然界中各種對立又相聯的現象,如天地、日月、晝夜、男女、上下等,以哲學的思維方式,抽象出「陰陽」的概念。

  在如今科技飛速發展的時代,人們對事物的認知越發理性化。

  有一種與「陰陽」相同的事物一直被人們所使用,那便是二進位。

  乾卦,表示111;兌卦,表示110;

  離卦,表示101;震卦,表示100;

  巽卦,表示011;坎卦,表示010;

  艮卦,表示001;坤卦,表示000。

  正所謂:

  「太極生兩儀,兩儀生四象,四象生八卦」

  簡簡單單的陽爻和陰爻,似乎就能夠組成世間萬物。

  「也許,我可以靠著簡簡單單的『1』和『0』創造一個世界?

  屬於我的世界?」