二进制整数数据压缩

| 我需要在网络上传输整数数据类型,但不想一直传输所有32(或64)位-数据在99%的时间内只能容纳一个字节-因此看起来需要以某种方式压缩它:例如,如果其他7位仅意味着某个值(0-127),则该字节的第一位为0;否则(如果第一字节为1),则需要将这7个字节向左移动并读取第二个字节做同样的过程。 有一些常用的方法吗?我不想重新发明轮子... 谢谢。     
已邀请:
        您描述的方案(本质上是base-128编码:每个字节是7位base-128 \“ digit \”和单个位标志以指示它是否为最后一位)是一种常见的处理方式这样做。 例如,请参见: DWARF规范(第7.6节)中有关“ LEB128”的部分; Google协议缓冲区中的“ Base 128 Varints”; LLVM位代码格式的“可变宽度整数”(在该处的不同位置使用了不同的宽度)。     
        几乎任何数据压缩算法都能够很好地压缩这种数据流。使用您的语言提供的任何压缩库。     

要回复问题请先登录注册