BitArray-以下引用msdn的例子:
1
using System;
2
using System.Collections;
3
public 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
/**//*
70
This code produces the following output.
71
72
myBA1
73
Count: 5
74
Length: 5
75
Values:
76
False False False False False
77
myBA2
78
Count: 5
79
Length: 5
80
Values:
81
False False False False False
82
myBA3
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
91
myBA4
92
Count: 5
93
Length: 5
94
Values:
95
True False True True False
96
myBA5
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);
C# BitArray使用详解
本文详细介绍了如何在C#中使用BitArray类创建不同类型的位数组,包括使用默认值初始化、从字节数组、布尔数组及整数数组转换等方法,并展示了如何获取和设置BitArray中的值。
1172

被折叠的 条评论
为什么被折叠?



