详解varint编码原理

什么是varint编码:简单来说varint是一种数压缩算法,其核心思想是利用bit位来实现数据的压缩。

  • 比如在java中:int param = 1234;转换为二进制为:1111011,而java中int类型占4个字节,存储方式如下:
    int 1234在java中的内存模型
    前面的21个字节空位造成了大量内存空间的浪费,如果可以对空位(0)进行压缩,那么会大大节省内存空间,如果数据在网络中传输时,也会节省大量节省网络带宽消耗

varint编码方式简单来说就是:从右向左每隔7位取一片段并补上标志位,再将若干片段从左往右排列,具体实现方式为:

在这里插入图片描述

当解压缩时,可以根据标志位判断后续还有没有数据


在这里插入图片描述
在这里插入图片描述

发布了9 篇原创文章 · 获赞 10 · 访问量 1024

猜你喜欢

转载自blog.csdn.net/weixin_43954926/article/details/102869587