看本文Varint的时候,表格内的编码结果无法理解。然后去搜了一下ZigZag编码,才想起来:
1. 整数在电脑上是以补码方式存储的。
2. 位移操作是对补码进行操作。
3. 左移一位意义是*2(符号位可能变),右移一位意义是(值-1)/2,注意负数右移左侧补1。
4. &按位与,同为1则为1;|按位或,只要有1则为1;^异或,不同为1;~取反;
Protobuf数据格式解析Protobuf是Google开源的一款类似于Json,XML数据交换格式,其内部数据是纯二进制格式,不依赖于语言和平台,具有简单,数据量小,快速等优点。目前用于序列化与反序...