【发布时间】:2016-05-06 21:15:44
【问题描述】:
在 BitArray 中获取最后设置位的有效(快速)方法是什么。 (LINQ 或简单的后向 for 循环对于大型位图来说不是很快。而且我需要快)BitArray 我看到了下一个算法:返回 BitArray 内部 int 数组数据并使用一些编译器 Intrinsic Like C++ _BitScanReverse(不知道 C# 中的模拟)。
【问题讨论】:
-
使用
Linq=>arrayInstance.Last() -
整数类型会更容易,所以如果你的数组足够短,你可以考虑一下。
-
Linq 不快。我伤心 - “有效”。没有 LINQ!
-
你可以这样做,你只需要实现位扫描yourself
-
BitArray 类仅提供对单个位的访问,因此您无法有效地跳过全为零的整个单词。您必须找到/编写位数组的另一个实现。
标签: c# .net bit-manipulation