varint
varint
是可变长度int
int
占4个byte
。
varint
长度可变,占1~5个byte
,其中每个byte
和int
的byte
不同,每个byte
的最高位表示是否之后还有字节,1表示有,0表示无。
varint
一般是小端存储,以下int
与varint
都以小端为例。
表示数字 | int | varint |
---|---|---|
255 | 11111111 00000000 00000000 00000000 | 11111111 00000001 |
1 | 00000001 00000000 00000000 00000000 | 00000001 |
256 | 00000000 00000001 00000000 00000000 | 10000000 00000010 |
2^31 - 1 | 11111111 11111111 11111111 11111111 | 11111111 11111111 11111111 11111111 00000111 |