Mapping the real world to bits - CSAPP C2

計算機終歸是為了解決現(xiàn)實問題,而為了解決問題就需要先能夠表達(dá)問題,進(jìn)化賦予了我們語言甚至是高于語言的表達(dá),但是一個我們從頭去構(gòu)建的計算機沒有被造物主的我們直接賦予表達(dá)的能力,而且它能夠接受的信號也沒有我們直覺上那么多,聽覺,視覺,嗅覺,我們可以由這些對應(yīng)的感覺去表達(dá),但計算機不行,但始終還是要mapping the real world to bits之后才能夠再去solving the fucking real world problem,那么計算機的前人們就憑著心智,去探索我們表達(dá)更為深層的那些東西。
正如computer詞義所言,初始就與compute有著緊密的聯(lián)系,那么最開始的工作就是把我們的數(shù)學(xué)大廈的各個基柱,能夠讓其表達(dá)。依托數(shù)字電路的發(fā)展,我們擁有了用電路表達(dá)bits和運算的能力,那么首先要做的,就是把習(xí)慣于十進(jìn)制計算的我們,將計算進(jìn)行轉(zhuǎn)化到二進(jìn)制,這樣去讓電路表達(dá),而依托于表達(dá)之上我們就可以實現(xiàn)一個自動的十進(jìn)制轉(zhuǎn)二進(jìn)制的過程。C語言也是通過類似的過程去實現(xiàn)的,先通過機器碼一步步把其編譯過程實現(xiàn),再通過實現(xiàn)的過程去更高效率的完成語言的實現(xiàn),在最后階段再完成語言的自舉。
表達(dá)的前提是約定,最底層bit過于細(xì)節(jié),不能夠比較直接的被理解,機器也需要一個約定去表達(dá),先驅(qū)們最開始便在位的基礎(chǔ)之上抽象出多種數(shù)據(jù)長度定義,從8位的bytes到64位long,約定之上使得我們可以比較容易的去理解,位定義,長度,字節(jié)序,這些最終構(gòu)成了我們最耳熟能詳?shù)木幊讨袛?shù)字的概念,標(biāo)準(zhǔn)的約定又使得我們的表達(dá)超出數(shù)字,可以表示字母,乃至于世界語言。
位數(shù)總是有窮的,但是我們計算中也會遇到的浮點數(shù)并不是,正如我們多數(shù)時候不能直接寫出一個浮點數(shù),而只能以分?jǐn)?shù)進(jìn)行表示一樣,用分?jǐn)?shù)去表達(dá),是一個很自然的想法,但是隨著位數(shù)的增加,我們以2進(jìn)制為低的表示,也會出現(xiàn)無法表達(dá)的情況,但是位數(shù)已經(jīng)夠高,對于現(xiàn)實的計算可以忽略那么一點點準(zhǔn)確性的程度。最終我們有了IEEE浮點數(shù)規(guī)范。
這樣我們對于現(xiàn)實的表述便有了基石,數(shù)字,浮點數(shù),字母,語言,我們便有了在計算機中表達(dá)我們現(xiàn)實的能力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容