本文整理汇总了C#中BitArray.SetBit方法的典型用法代码示例。如果您正苦于以下问题:C# BitArray.SetBit方法的具体用法?C# BitArray.SetBit怎么用?C# BitArray.SetBit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BitArray
的用法示例。
在下文中一共展示了BitArray.SetBit方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestSequential
private static void TestSequential(int count)
{
BitArray array = new BitArray(true, count);
for (int x = 0; x < count; x++)
{
if (!array.GetBit(x))
throw new Exception("each bit should be set");
}
array = new BitArray(false, count);
for (int x = 0; x < count; x++)
{
if (array.GetBit(x))
throw new Exception("each bit should be cleared");
}
for (int x = 0; x < count; x++)
{
array.SetBit(x);
if (!array.GetBit(x))
throw new Exception("each bit should be cleared");
array.ClearBit(x);
if (array.GetBit(x))
throw new Exception("each bit should be cleared");
array.SetBit(x);
if (array.FindClearedBit() != (x == count - 1 ? -1 : x + 1))
throw new Exception();
}
}
示例2: BitArray
public void BitArray()
{
MemoryPoolTest.TestMemoryLeak();
Stopwatch sw1 = new Stopwatch();
Stopwatch sw2 = new Stopwatch();
Stopwatch sw3 = new Stopwatch();
Stopwatch sw4 = new Stopwatch();
Stopwatch sw5 = new Stopwatch();
Stopwatch sw6 = new Stopwatch();
const int count = 20 * 1024 * 1024;
//20 million, That's like 120GB of 64KB pages
BitArray array = new BitArray(false, count);
sw1.Start();
for (int x = 0; x < count; x++)
{
array.SetBit(x);
}
sw1.Stop();
sw2.Start();
for (int x = 0; x < count; x++)
{
array.SetBit(x);
}
sw2.Stop();
sw3.Start();
for (int x = 0; x < count; x++)
{
array.ClearBit(x);
}
sw3.Stop();
sw4.Start();
for (int x = 0; x < count; x++)
{
array.ClearBit(x);
}
sw4.Stop();
sw5.Start();
for (int x = 0; x < count; x++)
{
if (array.GetBitUnchecked(x))
throw new Exception();
}
sw5.Stop();
//for (int x = 0; x < count -1; x++)
//{
// array.SetBit(x);
//}
sw6.Start();
for (int x = 0; x < count; x++)
{
array.SetBit(array.FindClearedBit());
}
sw6.Stop();
System.Console.WriteLine("Set Bits: " + (count / sw1.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
System.Console.WriteLine("Set Bits Again: " + (count / sw2.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
System.Console.WriteLine("Clear Bits: " + (count / sw3.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
System.Console.WriteLine("Clear Bits Again: " + (count / sw4.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
System.Console.WriteLine("Get Bits: " + (count / sw5.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
System.Console.WriteLine("Find Cleared Bit (All bits cleared): " + (count / sw6.Elapsed.TotalSeconds / 1000000).ToString("0.0 MPP"));
MemoryPoolTest.TestMemoryLeak();
}
示例3: TestRandom
private static void TestRandom(int seed)
{
Random rand = new Random(seed);
int count = rand.Next(1000000);
bool[] tmp = new bool[count];
BitArray array = new BitArray(false, count);
for (int x = 0; x < count << 1; x++)
{
int index = rand.Next(count);
array.SetBit(index);
tmp[index] = true;
}
for (int x = 0; x < count; x++)
{
if (tmp[x] != array.GetBit(x))
throw new Exception();
}
}