利用哈夫曼編碼壓縮解壓文件
1. 引言
本文爲大一下學期C語言課程的期末大作業,經過修改後發佈。文中要用到的測試文件1.lst見鏈接: https://pan.baidu.com/s/1hs7XoIK 密碼: wpru。
編譯環境:Ubuntu 16.04
本文主要考覈如何以C實現集成電路測試向量文件的無損壓縮。在通常的文件存儲中,無論是二進制格式的文件還是文本文件,幾乎都是等寬的編碼。比如ASCII碼格式的文本文件,每個字符由一個ASCII碼錶示,寬度爲8bit。然而,從磁盤空間利用率的角度看,這並不是一種效率最高的存儲方案。爲了理解定長編碼與變長編碼的區別,假設某個文件純粹由abcdef共6個字符組成,作爲定長編碼,至少需要3bit才能表示6個不同的字符,假設每個字符出現的頻率以及兩種編碼方案如下表所示
下面我們計算一下上述兩種編碼方案的總編碼長度。由於6個字符共出現了 100K次,對於定長編碼,每個