我需要通过网络传输积分数据类型,但不希望一直传输全部32位(或64位) - 数据仅占用一个字节99%的时间 - 因此它看起来像需要以某种方式进行压缩:例如,如果其他7位仅表示一些值(0-127),则一个字节的第一位为0,否则(如果第一个字节为1),则需要将这7个字节左移并读取第二个字节做同样的过程。二进制积分数据压缩
有没有一些常见的方法来做到这一点?我不想重新发明轮子...
谢谢。
我需要通过网络传输积分数据类型,但不希望一直传输全部32位(或64位) - 数据仅占用一个字节99%的时间 - 因此它看起来像需要以某种方式进行压缩:例如,如果其他7位仅表示一些值(0-127),则一个字节的第一位为0,否则(如果第一个字节为1),则需要将这7个字节左移并读取第二个字节做同样的过程。二进制积分数据压缩
有没有一些常见的方法来做到这一点?我不想重新发明轮子...
谢谢。
您描述的方案(其实质上是一个基128编码:每个字节是一个7位基地128“数字”和一个位标志来指示它是否是最后一位数字)是这是一个常见的方式。
例如,参见:
SO截断了我的“Hello”前缀:( – Slav 2011-06-13 20:32:21