C# BitArray(摘抄)

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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值