普贤教程 › 包参考
bytes_pack 包
二进制 pack/unpack
| 项 | 值 |
|---|---|
| 包名 | bytes_pack |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | bytes_pack.px |
| 分类 | 数据格式与编解码 |
| 文件数 / 行数 | 1 / 259 |
安装与引入
bash
pxpkg init # 首次 pxpkg add bytes_pack@0.2.0 pxpkg install
px
import bytes_pack所属分类教程:数据格式与编解码
公开接口
| 函数 | 参数 |
|---|---|
bp_pack | fmt, args |
bp_unpack_from | fmt, data, off |
bp_unpack | fmt, data |
bp_size | fmt |
其余 16 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
bp_parse_unit | fmt, i |
bp_parse_endian | fmt |
bp_parse | fmt |
bp_check_range | n, size, signed |
bp_pow2 | bits |
bp_unpack_unit | data, off, size, kind, endian |
bp_pack_u16_le | n |
bp_pack_u16_be | n |
bp_pack_u32_le | n |
bp_pack_u32_be | n |
bp_unpack_u16_le | data, off |
bp_unpack_u16_be | data, off |
bp_unpack_u32_le | data, off |
bp_unpack_u32_be | data, off |
bp_pack_string | s |
bp_unpack_string | data, off |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/bytes_pack —— 二进制 pack/unpack ------------------------------------------------------------ 纯函数库(无 IO、无状态),编译(px build)与解释(px run)双模式一致。 bp_size(fmt) → Ok(int) | Err 格式固定长度(字节数) bp_pack(fmt, args) → Ok(bytes) | Err 按格式打包 bp_unpack(fmt, data) → Ok([值...]) | Err 自偏移 0 解包(须恰好消费完) bp_unpack_from(fmt, data, off) → Ok([新偏移, [值...]]) | Err 从 off 解包 格式: 字节序前缀(可省略,默认 ">" 大端/网络序): 类型符: B u8 / b i8 / H u16 / h i16 / I u32 / i i32 / L u32 / l i32 / Q u64 / q i64 f f32 / d f64 重复前缀:如 "4B" = 4 个 u8;无前缀 = 1 个 已知限制: - Q 仅保证 0..2^63-1 可表示范围(PuXian int 为 i64;超出自动回绕为负,调用方注意) - 不支持对齐填充(0.2.0 视需要加) 实现说明: - 整数转换收敛到原生 int_to_bytes/bytes_to_int(PX-DEF-019/020 已由 M186 修复, endian/signed 三轨可靠);float 走 float32_bits/float64_bits + bits_to_float32/64 - 范围/长度/格式错误一律 Err(不静默截断) ============================================================ ---- 内部:格式解析 ---- 解析一个类型符 + 重复数 → [size, signed, count, 剩余串索引];失败返回 null