Varint
Varint(Variable-length Integer)是 Protobuf 等协议使用的变长整数编码,每字节低 7 位承载数据、最高位为继续标志。
用途
在序列化协议中紧凑表示整数,小整数占用极少空间,大整数自动扩展。
机制
将无符号整数按 7 位分组从低到高输出,每字节 MSB 为 1 表示后续有字节、0 表示结束。有符号整数先用 ZigZag 映射为无符号再编码。
用例
- Protobuf 字段编码
- 数据库变长列
- 紧凑二进制协议
Varint(Variable-length Integer)是 Protobuf 等协议使用的变长整数编码,每字节低 7 位承载数据、最高位为继续标志。
在序列化协议中紧凑表示整数,小整数占用极少空间,大整数自动扩展。
将无符号整数按 7 位分组从低到高输出,每字节 MSB 为 1 表示后续有字节、0 表示结束。有符号整数先用 ZigZag 映射为无符号再编码。