gpt4 book ai didi

c# - 将 BitArray(二进制数)递增 1 的最快方法?

转载 作者:行者123 更新时间:2023-11-30 14:37:12 25 4
gpt4 key购买 nike

以下“增量”方法运行良好。但我想知道是否有更快的方法以更少的步骤完成此操作。

    public BitArray Increment(BitArray bArray)
{
carry = true;

for (i = 0; i < 32; i++)
{
if (carry)
{
if (bArray[i] == false)
{
bArray[i] = true;
carry = false;
}
else
{
bArray[i] = false;
carry = true;
}
}
}
return bArray;
}

谢谢....

最佳答案

您可以做出一项非常明显的改进:完成后停止!

public void Increment(BitArray bArray)
{
for (int i = 0; i < 32; i++)
{
bool previous = bArray[i];
bArray[i] = !previous;
if (!previous)
{
// Found a clear bit - now that we've set it, we're done
return;
}
}
}

或者,如果您真的只有 32 位(并且永远只有 32 位),为什么不直接使用 int 呢?增加 that 真的很容易!如果需要,您始终可以将其包装在自己的自定义结构中。

关于c# - 将 BitArray(二进制数)递增 1 的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com