[转载]LEB128格式简介(CN)
生活随笔
收集整理的這篇文章主要介紹了
[转载]LEB128格式简介(CN)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[轉載]LEB128格式簡介(CN)
LEB128即"Little-Endian Base 128",基于128的小印第安序編碼格式,是對任意有符號或者無符號整型數的可變長度的編碼。
也即,用LEB128編碼的正數,會根據數字的大小改變所占字節數。在android的.dex文件中,他只用來編碼32bits的整型數。
格式:
上圖只是指示性的用兩個字節表示。編碼的每個字節有效部分只有低7bits,每個字節的最高bit用來指示是否是最后一個字節。
非最高字節的bit7為0
最高字節的bit7為1
將leb128編碼的數字轉換為可讀數字的規則是:除去每個字節的bit7,將每個字節剩余的7個bits拼接在一起,即為數字。
比如:
LEB128編碼的0x02b0 ---> 轉換后的數字0x0130
轉換過程:
0x02b0 ---> 0000 0010 1011 0000 -->去除最高位--> 000 0010 011 0000 -->按4bits重排 --> 00 0001 0011 0000 --> 0x130
轉換函數為:
代碼位于:android/dalvik/libdex/leb128.h
?
posted on 2013-07-30 00:42 chx4 閱讀(...) 評論(...) ?編輯 收藏轉載于:https://www.cnblogs.com/chx4/articles/3224212.html
總結
以上是生活随笔為你收集整理的[转载]LEB128格式简介(CN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冷空气降温注意保暖的温馨句子
- 下一篇: 外呼公司从哪接外包的业务(电话外呼营销技