讀《程式是怎樣跑起來的》第六章有感

2022-02-26 18:33:57 字數 740 閱讀 4626

沒讀這一章之前我也壓縮過檔案,用的是zip壓縮軟體,目的就是為了讓檔案變小一點,少佔點記憶體,因為檔案是以位元組為單位的,乙個字元占用乙個位元組的長度,檔案也分好幾種型別,裡面的資料是文字,就是文字檔案,裡面是圖形就是影象檔案。

這一章作者講了兩個壓縮技巧,第乙個講了rle演算法的機制即「資料x重複次數」,接著又講了它的缺點,就是只適合連續出現的影象和檔案,並不太適合文字檔案的壓縮。我感覺也是,因為只有少數檔案內容是連續出現的,大多數都不是重複的。

第二個壓縮技巧就是哈夫曼演算法,它的關鍵在於「多次出現的資料用小於8位的位元組數表示,不常用的資料則可以用超過8位的位元組數來表示」。不過不管資料夠不夠8位還是超出8位最終都要以8位為單位儲存到檔案中,因為磁碟是以位元組為單位儲存資料的。這個是比較準確的,不過要進行一些計算,我感覺它跟莫爾斯編碼比較像,都是根據資料出現的頻率來計算長度。

接著作者講了莫爾斯編碼,「根據日常文字中各字元出現的頻率來決定表示各字元的編碼的資料長度。」但並不適合特殊的文字。而哈夫曼演算法是按照「出現頻率高的字元用盡量少的位數編碼來表示」這一原則整理字元。然後作者教我們如何製作哈夫曼樹,其實這部分內容我沒有仔細看,因為他舉的那個例子沒看太懂,樹的前面懂了,第四步和壓縮比例得多看兩遍。最後一節作者講了可逆壓縮和非可逆壓縮,還講了四種影象資料格式有bmp、jpeg、tiff、gif接著又對這四種格式逐一進行了介紹,學了這一章發現壓縮也沒我想象的簡單,裡面介紹的演算法我都沒聽過,只會用壓縮軟體壓縮檔案,並不知道它裡面怎樣執行和轉換的。不過學了這一章對壓縮更加理解了,以後可以嘗試用其它方法自己壓縮程式檔案了。

《程式是怎樣跑起來的》第六章

本章就學習了關於資料壓縮的相關知識。檔案是將資料儲存在磁碟等儲存媒介中的一種形式,程式檔案中儲存資料的單位是位元組。檔案中的位元組資料都是連續儲存的。我們把檔案內容用 資料x重複次數 的形式來表示的壓縮方法稱為rle run length encoding,行程長度編碼 演算法。rle演算法是 一種...

《程式是怎麼跑起來的》第六章有感

程式是怎麼跑起來的 第六章有感 這一章講解了檔案的壓縮,檔案是將資料儲存在磁碟等儲存媒介中的一種形式。程式檔案中儲存資料的單位是位元組。檔案就是位元組資料的集合。壓縮的檔案的副檔名有lzh和zip等,當檔案太大放不下時,會採用檔案壓縮的方法。檔案是以位元組為單位儲存的,檔案其實就是位元組資料的集合,...

讀《程式是怎樣跑起來》第五章有感

第五章主要講的是記憶體和磁碟的關係,記憶體和磁碟被歸類為儲存部件,記憶體主要指主記憶體,主要負責cpu中執行的程式指令和資料記憶體,磁碟主要指硬碟,磁碟中儲存的程式,必須要載入到記憶體後才能執行,在磁碟中儲存的原始程式是無法直接執行的,原因是因為負責解析和執行程式內容的cpu需要通過內部程式計數器來...