如何有效地表示一个非常大的位数组?

Lou*_*hys 4 .net c# bit memory-optimization

由于布尔值实际占用1个字节的空间,因此a bool[]不是表示位数组的最节省空间的方式.有时整数和长整数用作更有效的位数组,但长整数和长整数只能容纳64位.是否有更节省空间的方法在有限的内存中存储数千万位的数组?

我需要对这个数组做的就是设置/清除各个位并检查某些位是1还是0,即我需要的唯一功能:

void Set(int index, bool value);
bool Get(int index);
Run Code Online (Sandbox Code Playgroud)

I4V*_*I4V 11

我认为你需要的是BitArray

  • @CodesInChaos:你会暴露什么样的泛型类型?你的观点没有实际意义. (3认同)