c - 在很小的内存中表示非常大的位数组

标签 c bitmap bit

我想以某种方式将包含 250 M 状态(每个 1 位)的结构表示为尽可能少的内存(最多 100 k)。对它的操作是set/get。我冷不说它是密集或稀疏,它可能会有所不同。 我想使用的语言是 C。

我在这里查看了其他线程以找到也合适的东西。例如,像布隆过滤器这样的概率结构就不适合,因为可能存在错误答案。

请问有什么建议吗?

最佳答案

如果您知道您的数据可能稀疏,那么您可以使用 run-length encoding 。但除此之外,您无法压缩它。

关于c - 在很小的内存中表示非常大的位数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981270/

相关文章:

java - libGDX:如何将纹理裁剪为圆形

c# - WPF Bitmap透明背景变黑

C - 将三个 8 位字符操作为 24 位 block ,再转换为四个 6 位 block

Android 位图致命信号 11 (SIGSEGV)

c - 使用Xcode安全框架解析asn1格式

c++ - 我怎样才能让 CMake 用两种不同的语言编译同一个输入文件?

c++ - 图像变换(强风)c/c++

c++ - MySQL 和 Sparksee 数据库中的自定义大小整数

bit - 从 32 位整数中提取数字

c - 结合使用 Arduino Motor Shield 和 Bluetooth Shield