我的问题是,在 C# 中是否有一种方法可以在没有迭代的情况下找到具有指定值为 0 或 1 的字节中的下一个二进制数字(寻找最高性能选项)。
例如,如果您有 10011 并从第一位(最右边)开始并搜索第一个 0,那么它将是从右到左的第三位。如果您随后从第 3 位开始并想找到下一个 1,它将位于第 5 位(最左侧)。
感谢您的帮助,如果我需要进一步提供任何信息,请随时告诉我。
编辑:这是我当前的代码。
private int GetBinarySegment(uint uiValue, int iStart, int iMaxBits, byte bValue)
{
int r = 0; uiValue >>= iStart;
if (uiValue == 0) return iMaxBits - iStart;
while ((uiValue & 1) == bValue) { uiValue >>= 1; r++; }
return r;
}