在C#中存储长二进制(最多512位)的最佳方法

tra*_*max 4 c# bit-manipulation bit

我试图找出在C#中存储大型二进制(超过96位)数字的最佳方法

我正在构建应用程序,它将自动为轮班分配工作人员.换档时间可短至15分钟(但未来可能会更小).为了避免双重预订工人,我计划得到他们每日时间的二进制映射:24小时以相等的块(15分钟)分开,每个块都有一个标志(0表示免费,1表示忙)所以当我们试图给另一个转移到工人,我们可以对工人的每日可用性与轮班时间进行二元比较.简单易行.

但是C#long只允许最多64位,并且在当前设置下我需要至少96位(每个周期24小时*60分钟/ 15分钟).这种表示必须是内存友好的,因为一次操作大约有一百万个对象.

我考虑的其他选择很少:

  • 串.内存饥渴,实现逐位操作并不简单
  • 比特数组.但据我所知,C#没有位类型
  • 无符号整数数组.每个数组仅代表一天的一部分.我能想到的最好的

还有其他建议吗?

提前致谢!

Bra*_*etz 7

你看过BitArray课吗?它应该是你正在寻找的.