LEB128 编解码器

Little Endian Base 128 可变长度整数编码转换工具,支持 ULEB128/SLEB128

Workspace

LEB128 编解码器

Little Endian Base 128 (LEB128) 可变长度整数编码转换工具。
广泛应用于 DWARF 调试信息、WebAssembly、Android DEX 及 Protocol Buffers。

数据类型

快速示例

输入整数 (Integer)

十六进制结果 (Hex)

0 Bytes
BINARY REPRESENTATION

LEB128 编码规则

  • 7 位有效位:每个字节只有低 7 位用于存储数据。
  • MSB 延续位:最高位 (bit 7) 为 1 表示后面还有字节,为 0 表示结束。
  • 小端序:低位字节在前,高位字节在后。
  • SLEB128:使用补码表示负数,最后字节的 bit 6 用于符号扩展。

常见应用

Android DEX
WebAssembly
DWARF 调试
Protobuf

工具介绍

LEB128 编解码器 是一款专业的二进制数据处理工具,支持 ULEB128 (无符号) 和 SLEB128 (有符号) 两种格式的互转。

核心功能

1. 双模式支持


  • ULEB128:用于编码非负整数 (0 到 ∞),广泛用于 DEX 文件和 DWARF 格式。

  • SLEB128:用于编码有符号整数 (-∞ 到 +∞),使用补码表示负数。


2. 进制互转


  • 编码 (Encode):输入任意整数(支持 BigInt),实时生成十六进制 (Hex) 字节序列与二进制位 (Binary) 视图。

  • 解码 (Decode):输入十六进制字节,还原为原始整数。


3. 应用场景


LEB128 是一种高效的可变长度编码,常见于:
  • Android DEX:Dalvik 可执行文件格式。

  • WebAssembly (WASM):二进制模块格式。

  • DWARF:调试信息标准。

  • Protocol Buffers:Google 的序列化协议 (Varint)。


编码原理


  • 每个字节仅使用低 7 位存储数据。

  • 最高位 (MSB) 为标识位:1 表示后续还有字节,0 表示结束。

  • 采用小端序 (Little Endian),低位字节在前。

讨论 0

登录 后参与讨论

暂无评论,成为第一个分享观点的人吧。