详解varint编码原理

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

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

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

在这里插入图片描述

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


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

▄█▀█●各位同仁,如果我的代码对你有帮助,请给我一个赞吧,为了下次方便找到,也可关注加收藏呀
如果有什么意见或建议,也可留言区讨论

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值