BitArray - 移位

Mar*_*tin 6 .net c# bitarray

我有一个System.Collections.BitArray数组(~3000项),我想将所有位向左移动1.然而,该集合似乎不支持该操作(即bitArray << 1不工作,那里不是方法).有关如何做到这一点的任何想法?

谢谢!

Fra*_*ack 6

这个简单的片段显示了一种手动方式来做到这一点。的值bitArray[0]被覆盖:

//... bitArray is the BitArray instance

for (int i = 1; i < bitArray.Count; i++)
{
   bitArray[i - 1] = bitArray[i];
}

bitArray[bitArray.Count - 1] = false // or true, whatever you want to shift in
Run Code Online (Sandbox Code Playgroud)

将此作为扩展方法应该没什么大不了的。

  • 那太好了……但很慢。我想会有一个特殊的运算符或方法,因为我们正在玩位。 (3认同)