C# 點(diǎn)陣列(BitArray)
C# 點(diǎn)陣列(BitArray)
BitArray 類管理一個(gè)緊湊型的位值數(shù)組,它使用布爾值來表示,其中 true 表示位是開啟的(1),false 表示位是關(guān)閉的(0)。
當(dāng)您需要存儲(chǔ)位,但是事先不知道位數(shù)時(shí),則使用點(diǎn)陣列。您可以使用整型索引從點(diǎn)陣列集合中訪問各項(xiàng),索引從零開始。
BitArray 類的方法和屬性
下表列出了 BitArray 類的一些常用的 屬性:
屬性 | 描述 |
---|---|
Count | 獲取 BitArray 中包含的元素個(gè)數(shù)。 |
IsReadOnly | 獲取一個(gè)值,表示 BitArray 是否只讀。 |
Item | 獲取或設(shè)置 BitArray 中指定位置的位的值。 |
Length | 獲取或設(shè)置 BitArray 中的元素個(gè)數(shù)。 |
下表列出了 BitArray 類的一些常用的 方法:
序號(hào) | 方法名 & 描述 |
---|---|
1 | public BitArray And( BitArray value ); 對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位與操作。 |
2 | public bool Get( int index ); 獲取 BitArray 中指定位置的位的值。 |
3 | public BitArray Not();把當(dāng)前的 BitArray 中的位值反轉(zhuǎn),以便設(shè)置為 true 的元素變?yōu)?false,設(shè)置為 false 的元素變?yōu)?true。 |
4 | public BitArray Or( BitArray value ); 對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位或操作。 |
5 | public void Set( int index, bool value ); 把 BitArray 中指定位置的位設(shè)置為指定的值。 |
6 | public void SetAll( bool value ); 把 BitArray 中的所有位設(shè)置為指定的值。 |
7 | public BitArray Xor( BitArray value ); 對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位異或操作。 |
實(shí)例
下面的實(shí)例演示了點(diǎn)陣列(BitArray)的使用:
實(shí)例
using System;
using System.Collections;
namespace CollectionsApplication
{
class Program
{
static void Main(string[] args)
{
// 創(chuàng)建兩個(gè)大小為 8 的點(diǎn)陣列
BitArray ba1 = new BitArray(8);
BitArray ba2 = new BitArray(8);
byte[] a = { 60 };
byte[] b = { 13 };
// 把值 60 和 13 存儲(chǔ)到點(diǎn)陣列中
ba1 = new BitArray(a);
ba2 = new BitArray(b);
// ba1 的內(nèi)容
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++)
{
Console.Write("{0, -6} ", ba1[i]);
}
Console.WriteLine();
// ba2 的內(nèi)容
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 的內(nèi)容
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 的內(nèi)容
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();
}
}
}
using System.Collections;
namespace CollectionsApplication
{
class Program
{
static void Main(string[] args)
{
// 創(chuàng)建兩個(gè)大小為 8 的點(diǎn)陣列
BitArray ba1 = new BitArray(8);
BitArray ba2 = new BitArray(8);
byte[] a = { 60 };
byte[] b = { 13 };
// 把值 60 和 13 存儲(chǔ)到點(diǎn)陣列中
ba1 = new BitArray(a);
ba2 = new BitArray(b);
// ba1 的內(nèi)容
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++)
{
Console.Write("{0, -6} ", ba1[i]);
}
Console.WriteLine();
// ba2 的內(nèi)容
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 的內(nèi)容
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 的內(nèi)容
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();
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
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
相關(guān)文章
- C++ 變量作用域
- C++ 函數(shù)
- C++ 字符串
- C++ 重載運(yùn)算符和重載函數(shù)
- C語(yǔ)言 基本語(yǔ)法
- C語(yǔ)言 存儲(chǔ)類
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <ctype.hglt;
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <stddef.h>
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <stdio.h>
- C 語(yǔ)言必背代碼例子
- C# 數(shù)組 Array
- C# 預(yù)處理器指令
- C# 正則表達(dá)式
- C# 泛型 Generic
- C++ 指針數(shù)組
- C++ 傳值調(diào)用
- C++ 指針調(diào)用
- C++ 中指向類的指針
- C++ 類的靜態(tài)成員
- C語(yǔ)言 庫(kù)函數(shù) difftime()