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

2022-07-15 22:09:16 字數 728 閱讀 2117

本章就學習了關於資料壓縮的相關知識。

檔案是將資料儲存在磁碟等儲存媒介中的一種形式,程式檔案中儲存資料的單位是位元組。檔案中的位元組資料都是連續儲存的。

我們把檔案內容用「資料x重複次數"的形式來表示的壓縮方法稱為rle ( run length encoding,行程長度編碼)演算法。rle演算法是-一種很好的壓縮方法,經常被用於壓縮傳真的影象等。但在實際的文字檔案中,同樣字元多次重複出現的情況並不多見。雖然針對相同資料經常連續出現的影象、檔案等,rle演算法可以發揮不錯的效果,但它並不適合文字檔案的壓縮,因為文字檔案中同樣字元連續出現並不多見。

還有就是哈夫曼演算法,它可以大幅度提公升壓縮比率,它的關鍵就在於「多次出現的資料用小於8位的位元組數來表示,不常用的資料則可以用超過8位的位元組數來表示」。 不過有一點需要注意,不管是不滿8位的資料,還是超過8位的資料,最終都要以8位為單位儲存到檔案中。這是因為磁碟是以位元組(8位)為單位來儲存資料的。為了實現這- -處理,壓縮程式的內容會複雜很多,不過作為回報,最終得到的壓縮率也是相當高的。

在哈夫曼演算法中,通過借助哈夫曼樹構造編碼體系,即使在不使用字元區分符號的情況下,也可以構建能夠明確進行區分的編碼體系。也就是說,利用哈夫曼樹後,就算表示各字元的資料位數不同,也能夠做成可以明確區分的編碼。因此,只要掌握了哈夫曼樹的製作方法,並用程式將其完成,就可以借助哈夫曼演算法實現檔案壓縮了。不過,與rle演算法相比,程式的內容要複雜很多。

最後就是我們把能還原到壓縮前狀態的壓縮稱為可逆壓縮,而無法還原到壓縮前狀態的壓縮稱為非可逆壓縮。

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

沒讀這一章之前我也壓縮過檔案,用的是zip壓縮軟體,目的就是為了讓檔案變小一點,少佔點記憶體,因為檔案是以位元組為單位的,乙個字元占用乙個位元組的長度,檔案也分好幾種型別,裡面的資料是文字,就是文字檔案,裡面是圖形就是影象檔案。這一章作者講了兩個壓縮技巧,第乙個講了rle演算法的機制即 資料x重複次...

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

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

讀《程式是怎樣跑起來的》

我們開始學習程式設計最先接觸的是vb,因為vb比較容易看到成果,簡單的 就可以實現好玩的功能。我們有邏輯,並用這種高階語言表達出來時,計算機是怎樣處理的呢,計算機內部是如何儲存傳遞資料的,讀了 程式是怎樣跑起來的 感覺以前寫的 更生動了,可以在你眼前跑來跑去了。本文先來介紹cpu是什麼。cpu 處理...