Protobuf序列化的原理-varint
生活随笔
收集整理的這篇文章主要介紹了
Protobuf序列化的原理-varint
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先說第一種,我們先來看age=300這個數字是如何被壓縮的
這兩個字節字節分別的結果是:-84?、2?
-84怎么計算來的呢??我們知道在二進制中表示負數的方法,高位設置為1,?并且是對應數字的二進制取反以后再計算補碼表示(補碼是反碼+1)
所以如果要反過來計算
1. 【補碼】10101100?-1?得到?10101011
2. 【反碼】01010100?得到的結果為84.?由于高位是1,表示負數所以結果為-84
?
總結
以上是生活随笔為你收集整理的Protobuf序列化的原理-varint的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Protobuf序列化的原理
- 下一篇: Protobuf序列化的原理-字符如何转