二进制积分数据压缩

时间:2011-06-13 20:31:36

标签: encoding integer bit-manipulation

我需要通过网络传输整数数据类型,但不希望一直传输所有32位(或64位) - 数据仅适用于99%的时间 - 因此看起来需要压缩它以某种方式:例如,如果其他7位仅表示某个值(0-127),则字节的第一位为0,否则(如果第一个字节为1)则需要将这7个字节向左移位并读取第二个字节以执行相同操作过程

有没有一些常见的方法可以做到这一点?我不想重新发明轮子......

谢谢。

2 个答案:

答案 0 :(得分:4)

您描述的方案(基本上是一个基本的128位编码:每个字节是一个7位基数-128“数字”和一个位标志,用于指示它是否是最后一位数)这是一种常见的做法。

例如,请参阅:

答案 1 :(得分:0)

几乎任何数据压缩算法都能够很好地压缩这种数据流。使用您的语言提供的任何压缩库。

相关问题