天天看點

進階字首碼的Huffman設計理念

進階字首碼的Huffman設計理念

本期記錄一下Zipack的類型樹和字首表。從類型樹上看,Zipack一共有21種資料類型,包括15種已配置設定類型和6種保留類型,15種已配置設定類型中又有11種基本類型和4種複合類型,11種基本類型中有5個是實數類型。大家可以按這種分類方法把所有類型一一對應上去,了解一遍。

基于Huffman編碼的類型樹

圖中的樹形結構使用了制表符

字首表明細

類型字首

長度段

長度含義

負載

迷你自然數

\

7bit

VLQ正整數

1111 1000

vlq自然數+128

VLQ負整數

1111 1001

-1-vlq自然數

正小數

1111 0010

(精度反轉算法)

負小數

1111 0011

短字元串

100

5bit

字元的數量

zipack字元串

VLQ字元串

1111 0101

vlq自然數+32

字典中的“鍵”

vlq自然數

純位元組流

1111 0100

VLQ自然數

位元組數量

位元組流

Boolean

1111 0000、1111,0001

null/nil

1111 1010

短清單

101

清單元素的數量

子元素無縫拼接

VLQ清單

1111 0110

VLQ自然數+32

迷你字典

110

鍵值對的數量

鍵值無縫拼接

字典

1111 0111

保留類型

FB、FC、FD、FE、FF

保留類型(帶長度)

1110 0000 ~ 1110 1111

4bit

某種保留對象的數量

下一篇: PuTTY