本文整理汇总了C#中BitArray.FindClearedBit方法的典型用法代码示例。如果您正苦于以下问题:C# BitArray.FindClearedBit方法的具体用法?C# BitArray.FindClearedBit怎么用?C# BitArray.FindClearedBit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BitArray
的用法示例。
在下文中一共展示了BitArray.FindClearedBit方法的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: FindBits
public void FindBits()
{
BitArray arraySet = new BitArray(true, 15);
BitArray arrayClear = new BitArray(false, 15);
if (arraySet.FindClearedBit() != -1)
throw new Exception();
if (arrayClear.FindSetBit() != -1)
throw new Exception();
int count = 0;
foreach (var set in arraySet.GetAllSetBits())
{
if (set != count)
throw new Exception();
count++;
}
count = 0;
foreach (var set in arrayClear.GetAllClearedBits())
{
if (set != count)
throw new Exception();
count++;
}
if (arrayClear.GetAllSetBits().Count() != 0)
throw new Exception();
if (arraySet.GetAllClearedBits().Count() != 0)
throw new Exception();
arraySet.EnsureCapacity(300);
if (!arraySet.AreAllBitsSet(62, 200))
throw new Exception();
if (arraySet.ClearCount != 0)
throw new Exception();
}