BitArray-以下引用msdn的例子:
1using System;
2using System.Collections;
3public class SamplesBitArray
{
4
5 public static void Main()
{
6
7 // Creates and initializes several BitArrays.
8 BitArray myBA1 = new BitArray( 5 );
9
10 BitArray myBA2 = new BitArray( 5, false );
11
12 byte[] myBytes = new byte[5]
{ 1, 2, 3, 4, 5 };
13 BitArray myBA3 = new BitArray( myBytes );
14
15 bool[] myBools = new bool[5]
{ true, false, true, true, false };
16 BitArray myBA4 = new BitArray( myBools );
17
18 int[] myInts = new int[5]
{ 6, 7, 8, 9, 10 };
19 BitArray myBA5 = new BitArray( myInts );
20
21 // Displays the properties and values of the BitArrays.
22 Console.WriteLine( "myBA1" );
23 Console.WriteLine( " Count: {0}", myBA1.Count );
24 Console.WriteLine( " Length: {0}", myBA1.Length );
25 Console.WriteLine( " Values:" );
26 PrintValues( myBA1, 8 );
27
28 Console.WriteLine( "myBA2" );
29 Console.WriteLine( " Count: {0}", myBA2.Count );
30 Console.WriteLine( " Length: {0}", myBA2.Length );
31 Console.WriteLine( " Values:" );
32 PrintValues( myBA2, 8 );
33
34 Console.WriteLine( "myBA3" );
35 Console.WriteLine( " Count: {0}", myBA3.Count );
36 Console.WriteLine( " Length: {0}", myBA3.Length );
37 Console.WriteLine( " Values:" );
38 PrintValues( myBA3, 8 );
39
40 Console.WriteLine( "myBA4" );
41 Console.WriteLine( " Count: {0}", myBA4.Count );
42 Console.WriteLine( " Length: {0}", myBA4.Length );
43 Console.WriteLine( " Values:" );
44 PrintValues( myBA4, 8 );
45
46 Console.WriteLine( "myBA5" );
47 Console.WriteLine( " Count: {0}", myBA5.Count );
48 Console.WriteLine( " Length: {0}", myBA5.Length );
49 Console.WriteLine( " Values:" );
50 PrintValues( myBA5, 8 );
51 }
52
53 public static void PrintValues( IEnumerable myList, int myWidth )
{
54 int i = myWidth;
55 foreach ( Object obj in myList )
{
56 if ( i <= 0 )
{
57 i = myWidth;
58 Console.WriteLine();
59 }
60 i--;
61 Console.Write( "{0,8}", obj );
62 }
63 Console.WriteLine();
64 }
65
66}
67
68
69/**//*
70This code produces the following output.
71
72myBA1
73 Count: 5
74 Length: 5
75 Values:
76 False False False False False
77myBA2
78 Count: 5
79 Length: 5
80 Values:
81 False False False False False
82myBA3
83 Count: 40
84 Length: 40
85 Values:
86 True False False False False False False False
87 False True False False False False False False
88 True True False False False False False False
89 False False True False False False False False
90 True False True False False False False False
91myBA4
92 Count: 5
93 Length: 5
94 Values:
95 True False True True False
96myBA5
97 Count: 160
98 Length: 160
99 Values:
100 False True True False False False False False
101 False False False False False False False False
102 False False False False False False False False
103 False False False False False False False False
104 True True True False False False False False
105 False False False False False False False False
106 False False False False False False False False
107 False False False False False False False False
108 False False False True False False False False
109 False False False False False False False False
110 False False False False False False False False
111 False False False False False False False False
112 True False False True False False False False
113 False False False False False False False False
114 False False False False False False False False
115 False False False False False False False False
116 False True False True False False False False
117 False False False False False False False False
118 False False False False False False False False
119 False False False False False False False False
120*/
121
BitArray myBA1 = new BitArray( 5 );
myBA1为5位,取用默认初始化,5位都为 False。即为0,由此可见,平时一位的值0和1在C#里面变成False和True;
byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
BitArray myBA3 = new BitArray( myBytes );
myBytes为byte数组,内容为1,2,3,4,5;二进制就是00000001,00000010,00000011,00000100,00000101,myBA3就为相应的5*8=40位;
bool[] myBools = new bool[5] { true, false, true, true, false };
BitArray myBA4 = new BitArray( myBools );
看输出,bool就想当于一位,myBools是长度为5的数组,变成myBA4后,也是5位;
int[] myInts = new int[5] { 6, 7, 8, 9, 10 };
BitArray myBA5 = new BitArray( myInts );
int是32位的,5个,换成BitArray当然就是5*32=160。
还应注意的是PrintValues方法,参数(IEnumerable myList, int myWidth ),foreach()循环,每行打印8个。
×××××××××××××××××××××××××××××××××××××××××××
byte[] ibyte= new byte[] ;
BitArray ibits = new BitArray(ibyte);
Int32 bitLen = ibits .Length;
Boolean bit = ibits .Get(i);
ibits.Set(3,true);