C#梳理【BitArray点阵列】

来源:互联网 发布:开票软件金税盘版官网 编辑:程序博客网 时间:2024/06/05 02:17

BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0)。

当您需要存储位,但是事先不知道位数时,则使用点阵列。您可以使用整型索引从点阵列集合中访问各项,索引从零开始。

BitArray 类的方法和属性

下表列出了 BitArray 类的一些常用的 属性

属性描述Count

获取 BitArray 中包含的元素个数。

IsReadOnly获取一个值,表示 BitArray 是否只读。Item获取或设置 BitArray 中指定位置的位的值。Length获取或设置 BitArray 中的元素个数。

下表列出了 BitArray 类的一些常用的 方法

序号方法名 & 描述1public BitArray And( BitArray value ); 
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位与操作。2public bool Get( int index ); 
获取 BitArray 中指定位置的位的值。3public BitArray Not();
把当前的 BitArray 中的位值反转,以便设置为 true 的元素变为 false,设置为 false 的元素变为 true。4public BitArray Or( BitArray value ); 
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位或操作。5public void Set( int index, bool value ); 
把 BitArray 中指定位置的位设置为指定的值。6public void SetAll( bool value ); 
把 BitArray 中的所有位设置为指定的值。7public BitArray Xor( BitArray value ); 
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位异或操作。

实例

下面的实例演示了点阵列(BitArray)的使用:

using System;using System.Collections;namespace CollectionsApplication{    class Program    {        static void Main(string[] args)        {            // 创建两个大小为 8 的点阵列            BitArray ba1 = new BitArray(8);            BitArray ba2 = new BitArray(8);            byte[] a = { 60 };            byte[] b = { 13 };                        // 把值 60 和 13 存储到点阵列中            ba1 = new BitArray(a);            ba2 = new BitArray(b);            // ba1 的内容            Console.WriteLine("Bit array ba1: 60");            for (int i = 0; i < ba1.Count; i++)            {                Console.Write("{0, -6} ", ba1[i]);            }            Console.WriteLine();                        // ba2 的内容            Console.WriteLine("Bit array ba2: 13");            for (int i = 0; i < ba2.Count; i++)            {                Console.Write("{0, -6} ", ba2[i]);            }            Console.WriteLine();                                   BitArray ba3 = new BitArray(8);            ba3 = ba1.And(ba2);            // ba3 的内容            Console.WriteLine("Bit array ba3 after AND operation: 12");            for (int i = 0; i < ba3.Count; i++)            {                Console.Write("{0, -6} ", ba3[i]);            }            Console.WriteLine();            ba3 = ba1.Or(ba2);            // ba3 的内容            Console.WriteLine("Bit array ba3 after OR operation: 61");            for (int i = 0; i < ba3.Count; i++)            {                Console.Write("{0, -6} ", ba3[i]);            }            Console.WriteLine();                        Console.ReadKey();        }    }}

运行结果为:

Bit array ba1: 60 
False False True True True True False False 
Bit array ba2: 13
True False True True False False False False 
Bit array ba3 after AND operation: 12
False False True True False False False False 
Bit array ba3 after OR operation: 61
True False True True False False False False 


原创粉丝点击