当前位置: 首页>>代码示例>>C#>>正文


C# BitArray.GetBitUnchecked方法代码示例

本文整理汇总了C#中BitArray.GetBitUnchecked方法的典型用法代码示例。如果您正苦于以下问题:C# BitArray.GetBitUnchecked方法的具体用法?C# BitArray.GetBitUnchecked怎么用?C# BitArray.GetBitUnchecked使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BitArray的用法示例。


在下文中一共展示了BitArray.GetBitUnchecked方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: 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();
        }
开发者ID:GridProtectionAlliance,项目名称:openHistorian,代码行数:72,代码来源:BitArrayTestPerformance.cs

示例2: GetSetBits

        public void GetSetBits()
        {
            BitArray array = new BitArray(false, 15);
         
            for (int x = 0; x < 15; x++)
            {
                if (array[x])
                    throw new Exception();
            }

            for (int x = 0; x < 15; x++)
            {
                if (array.GetBitUnchecked(x))
                    throw new Exception();
            }

            array[1] = true;
            if(array.TrySetBit(1))
                throw new Exception();

            if (!array.TrySetBit(2))
                throw new Exception();

            if (array.TrySetBit(2))
                throw new Exception();

            if (!array.TryClearBit(2))
                throw new Exception();

            if (array.TryClearBit(2))
                throw new Exception();

            //Here, bit 1 is set. 

            if (!array.AreAllBitsSet(1,1))
                throw new Exception();

            if (array.AreAllBitsSet(1,3))
                throw new Exception();

            if (!array.AreAllBitsCleared(2,8))
                throw new Exception();

            if (array.AreAllBitsCleared(0, 8))
                throw new Exception();


            array.SetBits(1,8);
            if (!array.AreAllBitsSet(1,8))
                throw new Exception();

            array.ClearBits(1, 8);
            if (!array.AreAllBitsCleared(1, 8))
                throw new Exception();


            array.EnsureCapacity(62);

            if (!array.AreAllBitsCleared(1, 8))
                throw new Exception();

            array.EnsureCapacity(1000);
            if (!array.AreAllBitsCleared(62, 500))
                throw new Exception();
        }
开发者ID:GridProtectionAlliance,项目名称:openHistorian,代码行数:65,代码来源:BitArrayTest.cs


注:本文中的BitArray.GetBitUnchecked方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。