1. 程式人生 > >varint變長編碼

varint變長編碼

變長編碼,對資料進行壓縮來減少儲存空間,採用CRC進行資料正確性校驗。

傳統的integer是以32位來表示的,儲存需要4個位元組,當如果整數大小在256以內,那麼只需要用一個位元組就可以儲存這個整數,這樣就可以節省3個位元組的儲存空間。

每個位元組,我們只使用低7位,最高的一位作為一個標誌位:
1:下一個byte也是該數字的一部分
0:下一個byte不是該數字的一部分

這種編碼的好處在於,對於小的數值,可以用更少的位元組去表示,不過相應的,對於大數就要使用更多的位元組去儲存。在統計學上,一般訊息中的數字以小數為主,所以用它可以省空間。

eg:
整數1的表示,僅需一個位元組:
0000 0001

300的表示,需要兩個位元組:
1010 1100 0000 0010