1. 程式人生 > >讀《程序是怎麽跑起來的》第六章有感

讀《程序是怎麽跑起來的》第六章有感

文本 集合體 文件的 基礎 內容 漢字 長度 也有 數據壓縮

第六章親自嘗試壓縮數據,知道了文件是字節數據的集合體,LZH是用LHA等工具壓縮過的擴展名,例如AAABB這個數據壓縮後就是A3B2,半角英文數字是用1個字節來表示的,漢字等全角字符是用兩個字節來表示的,知道了壓縮後數據能復原的就是可逆壓縮,不能復原的就是非可逆壓縮。

文件是以字節(B=Byte)為單位來儲存的,文件就是字節數據的集合,RLE的算法機制,簡稱為把文件內容用“數據×重復次數的形式”來表示的壓縮方法。但是RLE的算法也有缺點,在實際的文本文件中,同樣字符多次出現的文件並不多見,要知道RLE不適合文本文件的壓縮,然後在了解哈弗曼算法之前要拋棄掉之前“半角英文數字的1個字符是1個字節的數據”這一概念。文本文件是由不同類型的字符組合而成的,而不同的字符出現的次數也是不同的。還要知道磁盤是以字節為單位來保存數據的。之前認為的“莫爾斯編碼的短點是0,長點是1,其中1個字符用8為來表示”,這是一種不成熟的做法,實際上根據字符種類的不同,莫爾斯電碼符號的長度也有不同。

哈夫曼算法是指,為各壓縮對象文件,分別構造最佳的編碼體系,並以該編碼體系為基礎進行壓縮,但是該程序要比RLE算法要復雜的多。但是該算法能大幅度提升壓縮比例。最後的可逆壓縮和非可逆壓縮也不難理解,在文章的開始已經解釋過了。

讀《程序是怎麽跑起來的》第六章有感