学用 ASP.Net 之 System.Collections.BitArray 类


常用成员:

/* 属性 */ 
Count   //只读 
Length  //同 Count, 但可读写 
 
/* 方法 */ 
And()   //与 
Get()   //取值 
Not()   //取反 
Or()   //或 
Set()   //赋值 
SetAll() //全部设定为指定值 
Xor()   //异或 

  练习:

//(items)[]、Get()、Set() 
protected void Button1_Click(object sender, EventArgs e) 
{ 
   BitArray bits = new BitArray(new bool[3] { true, false, true }); 
 
   bool b1 = bits[0];    //True 
   bool b2 = bits[1];    //False 
   //bool b1 = bits.Get(0); 
   //bool b2 = bits.Get(1); 
   
   bits[0] = false; 
   bits[1] = true; 
   //bits.Set(0, false); 
   //bits.Set(1, true); 
 
   bool b11 = bits[0]; //False 
   bool b22 = bits[1]; //True 
 
   TextBox1.Text = string.Concat(b1, "\n", b2, "\n", b11, "\n", b22); 
} 
 
//SetAll() 及遍历 
protected void Button2_Click(object sender, EventArgs e) 
{ 
   BitArray bits = new BitArray(5); 
 
   string str1 = ""; 
   foreach (bool b in bits) 
   { 
      str1 += b.ToString() + " "; //False False False False False 
   } 
 
   bits.SetAll(true); 
   string str2 = ""; 
   foreach (bool b in bits) 
   { 
      str2 += b.ToString() + " "; //True True True True True 
   } 
   TextBox1.Text = str1 + "\n" + str2; 
} 
 
//Count、Length 
protected void Button3_Click(object sender, EventArgs e) 
{ 
   BitArray bits = new BitArray(5); 
 
   int n1 = bits.Count; //5 
 
   bits.Length = 3; 
   int n2 = bits.Count; //3 
 
   TextBox1.Text = string.Concat(n1, "\n", n2); 
} 
 
//Not() 
protected void Button4_Click(object sender, EventArgs e) 
{ 
   BitArray bits = new BitArray(new bool[4] { true, false, true, false }); 
   bits.Not();                     // False,True, False,True 
   TextBox1.Text = string.Format("{0},{1},{2},{3}", bits[0], bits[1], bits[2], bits[3]); 
} 
 
//And() 
protected void Button5_Click(object sender, EventArgs e) 
{ 
   BitArray bits1 = new BitArray(new bool[4] { true, false, true, false }); 
   BitArray bits2 = new BitArray(new bool[4] { true, true, false, false }); 
 
   bits1.And(bits2);                  // True, False, False, False 
   TextBox1.Text = string.Format("{0},{1},{2},{3}", bits1[0], bits1[1], bits1[2], bits1[3]); 
} 
 
//Or() 
protected void Button6_Click(object sender, EventArgs e) 
{ 
   BitArray bits1 = new BitArray(new bool[4] { true, false, true, false }); 
   BitArray bits2 = new BitArray(new bool[4] { true, true, false, false }); 
 
   bits1.Or(bits2);                  // True, True, True,  False 
   TextBox1.Text = string.Format("{0},{1},{2},{3}", bits1[0], bits1[1], bits1[2], bits1[3]); 
} 
 
//Xor() 
protected void Button7_Click(object sender, EventArgs e) 
{ 
   BitArray bits1 = new BitArray(new bool[4] { true, false, true, false }); 
   BitArray bits2 = new BitArray(new bool[4] { true, true, false, false }); 
 
   bits1.Xor(bits2);                  // False,True, True, False 
   TextBox1.Text = string.Format("{0},{1},{2},{3}", bits1[0], bits1[1], bits1[2], bits1[3]); 
} 
 
//其它建立方法 
protected void Button8_Click(object sender, EventArgs e) 
{ 
   //对象包含 3 个 true 
   BitArray bits1 = new BitArray(3, true); 
 
   //以 byte[] 为参数时, 将把其每个 byte 的 8 个位分别映射为一个元素 
   BitArray bits2 = new BitArray(new byte[3] { byte.MaxValue, byte.MinValue, byte.MaxValue }); 
 
   //以 int[] 为参数时, 将把其每个 int 的 32 个位分别映射为一个元素 
   BitArray bits3 = new BitArray(new int[3] { int.MaxValue, int.MinValue, int.MaxValue }); 
 
   int n1 = bits1.Length; //3 
   int n2 = bits2.Length; //24 
   int n3 = bits3.Length; //96 
 
   string s1, s2, s3; 
   s1 = s2 = s3 = ""; 
 
   foreach (bool b in bits1) { s1 = string.Concat(s1, Convert.ToByte(b)); } //111 
 
   foreach (bool b in bits2) { s2 = string.Concat(s2, Convert.ToByte(b)); } //11111111 
                                                         //00000000 
                                                         //11111111 
 
   foreach (bool b in bits3) { s3 = string.Concat(s3, Convert.ToByte(b)); } //11111111111111111111111111111110 
                                                         //00000000000000000000000000000001 
                                                         //11111111111111111111111111111110 
   TextBox1.Text = string.Concat(n1, "\n", n2, "\n", n3, "\n", s1, "\n", s2, "\n", s3); 
}


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3