计算机科普杂文一篇
最近這一兩年,因為工作需要,學了雜七雜八的很多語言,再加上平時看的從美國來的書籍,正好有空,寫一篇關于計算機入門級的雜文.
那我先從網(wǎng)絡說起,我希望講的簡單明了,各位一看就懂。
由于在現(xiàn)實世界,十進制,六十進制等方式表達數(shù)字不是很穩(wěn)定(容易出錯),所以計算機中才有二進制。進制是個什么概念,比如小時和分之間是六十進制的,30分鐘化成小時就是:30÷60=0.5小時;又比如小時和天之間是24進制的,8小時化成天,就是8÷24=0.33天。這樣說的意思是任意一個數(shù)都可以用其他進制表示,而且進制之間也可以轉(zhuǎn)換。只是十進制是一個特列,按照人們的思維習慣容易接受。
我就不講二進制和十進制之間如何轉(zhuǎn)換了,講起來有些人會頭疼(有興趣的人請惡補碼學),只是你看到很多講計算機的書籍會出現(xiàn)一長串的類似”10010011”的數(shù)字,這就表示的是一個數(shù)字就可以了。
計算機之間通信的時候,也要基于一張表(ASCII表),如果在英語里面,只要能傳送26個英文字母,就可以通信了。所以我可以簡單的打個比方,例如你自己制定一個表格,a→1,b→2,c→3,……如此類推(十進制表達),頂多再對應個逗號,句號,空格(假定為27),就可以滿世界的用英文來通信了。比如我要發(fā)個”I love you”,計算機就傳送9,27,12,15,22,5,27,25,15,21,然后在接收方還是按照這張表,對應著表達出來就行。說到這里漢字就煩,英文就26個字母通信就夠了,漢字那么多,這么對應,確實很麻煩,但是要通信還是得對應。當計算機普及之后,所以有了UTF-8這張表,大概意思就是把全世界出現(xiàn)的語言,每個字符對應一個數(shù)字,你打了這個字,計算機就傳輸這個數(shù)字就可以了。
由于網(wǎng)絡上計算機很多,所以要給每臺計算機編個地址,以便區(qū)分我要發(fā)給誰,所以有了網(wǎng)絡地址這個概念(就是大家熟悉的IP地址)。你發(fā)送信息給別人的時候,這個地址是包在信息的外面的,這樣子那些奇奇怪怪的鐵盒子就一級一級的傳送給對應這個地址的電腦。
網(wǎng)絡地址的數(shù)量,當時在M國,只設計了42億個(32位的二進制所能表示的最大的數(shù)),至少在1990年之前這個數(shù)量看起來是很多的,而且美國也不打算當時的局域網(wǎng)在其他國家發(fā)展,由于互聯(lián)網(wǎng)是世界性質(zhì)的,美國自己又留有很多,所以分到其他國家的就很少,分給中國的大概就2-3億個(要知道社會主義和資本主義長期cold war,能分到這個數(shù)就不錯了)。如果Z國同時超過3億人上網(wǎng)(通過局域網(wǎng)接入網(wǎng)絡的不算,這個時候其實是好幾個人才用了一個地址,專業(yè)術語,網(wǎng)絡地址轉(zhuǎn)換(NAT)),IP地址就會不夠,電信維護人員經(jīng)常會說IP地址分配完了,其他人上不了網(wǎng)。或者說你要掛個網(wǎng)站服務器,你就必須申請一條帶固定IP地址寬帶,才可以叫全世界訪問到你的網(wǎng)站(由于IP地址在中國緊缺,當你ADSL撥號斷開的時候,電信聯(lián)通就回收這個地址給其他人用了)。
互聯(lián)網(wǎng)在美國容易創(chuàng)新,大概也有這個原因吧,因為中國人想掛個網(wǎng)站讓全世界訪問到(電信固定IP地址的寬帶每個月800RMB),還是困難重重的,美國則很自由,大把的公網(wǎng)IP地址,扎克伯格就容易成功。
順便說下如果想得到網(wǎng)絡方面的認可,需要考取cisco(思科)的認證,分三個層次CCNA、CCNP、CCNE,由容易到復雜,據(jù)說CCNA也是非常難考的。
二個說下計算原理。
計算機里面進行的加減乘除都是用二進制來進行的。例如2+3運算的時候,中間那個加號表達的時候,還是一個數(shù)字,只是計算機看到這個數(shù)字會把這個數(shù)字翻譯成一個加法運算,然后交給加法電路來處理。這個電路還是模擬的現(xiàn)實世界,只是這里是電壓來相加的(0與0得0,1與0得1,只有這2中情況。二進制在這里便體現(xiàn)一個優(yōu)勢,如果是十進制,2,3,4……都要一個電壓來區(qū)別,容易出錯)。例如十進制里面滿10就向上一位進1,不滿就得出數(shù)字;二進制是滿2就向上一位進1,不滿就得出數(shù)字。加法和減法是同一個電路,乘法和除法是同一個電路。二進制只有1和0,所以設計乘法電路相對容易一些,但是還是模擬十進制的做法。至于其他更高級的運算,如乘方、開放、求余……這些只是加減乘除的復雜表達方式,如果想深入了解做法,請惡補數(shù)學。
三個說下軟件。
造成計算機難于理解和學習的根本原因還是軟件,因為軟件大多有長長的代碼,和不可思議的算法,以及各種按照個人喜好的約定(如果這種約定被很多人采用,就變成一種標準)。例如計算機表達一副黑白圖片的時候,其實他也是用二進制來表達的,只是一種特殊的數(shù)據(jù)結(jié)構(gòu)。一個屏幕,分很多個點,每個點都有個坐標,如果要拼成一幅圖,就要告訴計算機哪個點(用坐標)是黑色還是白色(黑白還是用不同的數(shù)字區(qū)分)。然后按順序存儲在硬盤里面。需要的時候展示在屏幕就可以了,彩色的不過用更多的色階來表示罷了。其他圖片格式如jpg、bmp就有更復雜的算法。與其說計算機不懂,還不如說數(shù)學太差勁。
總結(jié)
- 上一篇: 最新区块链科普图书《区块链进化史》上市
- 下一篇: 什么是股市泡沫或楼市泡沫?泡沫何解?