首页 > 解决方案 > 如何在文件中存储不同的位长度?

问题描述

我的代码有问题。我想以位存储从 0 到 127 的数字,但是对于某些数字,我不想在数字的开头浪费一些位作为 0。

例如,存储 15 需要 4 位。我不想浪费另外 4 位在 1111 的开头放置 0。换句话说,我想将 00001111(即 15)保存为仅 1111。问题是下一个数字可能是另一个位长度.

如何以最有效的方式保存这些数字,而不会为每个数字浪费 1 个字节。想象一下,我有一系列数字如下:

4, 66, 127, 55, 0, 6

我希望数字 4、66、127、55、0、6 的结果如下所示:

100 1000010 1111111 110111 0 110

代替: 00000100 01000010 01111111 00110111 00000000 00000110

而且我不想为每个指定 1 个字节。我该怎么做?谢谢你的帮助。

我读过一些关于位长和位域的东西。但我无法从中理解任何东西。

我希望数字 4、66、127、55、0、6 的结果如下所示:

100 1000010 1111111 110111 0 110

代替: 00000100 01000010 01111111 00110111 00000000 00000110

标签: bitmapbinarybitvariable-length-array

解决方案


推荐阅读