微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

二进制整数数据压缩

如何解决二进制整数数据压缩

| 我需要在网络上传输整数数据类型,但不想一直传输所有32(或64)位-数据在99%的时间内只能容纳一个字节-因此看起来需要以某种方式压缩它:例如,如果其他7位仅意味着某个值(0-127),则该字节的第一位为0;否则(如果第一字节为1),则需要将这7个字节向左移动并读取第二个字节做同样的过程。 有一些常用的方法吗?我不想重新发明轮子... 谢谢。     

解决方法

        您描述的方案(本质上是base-128编码:每个字节是7位base-128 \“ digit \”和单个位标志以指示它是否为最后一位)是一种常见的处理方式这样做。 例如,请参见: DWARF规范(第7.6节)中有关“ LEB128”的部分; Google协议缓冲区中的“ Base 128 Varints”; LLVM位代码格式的“可变宽度整数”(在该处的不同位置使用了不同的宽度)。     ,        几乎任何数据压缩算法都能够很好地压缩这种数据流。使用您的语言提供的任何压缩库。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。