1 回答

TA貢獻1820條經驗 獲得超9個贊
非常非常簡單,想象一下 ZIP 文件是這樣工作的:
它有一個索引,說明它包含哪些文件名以及我們可以在哪里找到它們
它通過說明每個字節重復的次數來壓縮每個文件
因此,如果您的文件layers.pic
包含: 0 0 0 0 0 0 0 0 50 50 50 50 50 50 50 50 100 100 100 100 100 100 100 100 100 100 100 100 100 10 0 "0" layers.pic
, 緊跟在索引之后,8x0, 8x50, 16x100" 并且它會更短。但是想象一下,如果一個文件只有0 17 39
; 那么“壓縮”實際上是文件長度的兩倍(1x0 1x17 1x39),并且您仍然需要浪費額外的空間來告訴索引它的原始名稱是什么以及在哪里可以找到它。即使我們認為壓縮不值得并按原樣將文件存儲到存檔中,我們仍然會增加文件大小,因為我們需要在索引中放入一些內容。
(ZIP 存檔比這更復雜一些;但基本原則非常接近 - 包括如果條目最終變大則不壓縮的選項。)
編輯:如果您查看維基百科頁面,您會發現每個文件條目都有至少 30 個字節加上文件名大小的標題;中央索引再次以擴展的形式重復該信息;然后是至少 20 個字節的 EOCD。您的文件以test.txt
8 個字節命名,因此僅元數據至少占用 (30+8) + (46+8) + 20 = 112 個字節,而沒有壓縮數據本身(因此最多占用 35 個字節)。
- 1 回答
- 0 關注
- 205 瀏覽
添加回答
舉報