varint变长编码

变长编码,对数据进行压缩来减少存储空间,采用CRC进行数据正确性校验。

传统的integer是以32位来表示的,存储需要4个字节,当如果整数大小在256以内,那么只需要用一个字节就可以存储这个整数,这样就可以节省3个字节的存储空间。

每个字节,我们只使用低7位,最高的一位作为一个标志位:
1:下一个byte也是该数字的一部分
0:下一个byte不是该数字的一部分

这种编码的好处在于,对于小的数值,可以用更少的字节去表示,不过相应的,对于大数就要使用更多的字节去存储。在统计学上,一般消息中的数字以小数为主,所以用它可以省空间。

eg:
整数1的表示,仅需一个字节:
0000 0001

300的表示,需要两个字节:
1010 1100 0000 0010

猜你喜欢

转载自blog.csdn.net/qq_30505673/article/details/85800693