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