摘要:使用BitArray進行互斥或運算
BitArray類別是.NET Framework中眾多集合中的一種,用來表示True與False(0與1),同時支援了通用位元層級操作,即AND、OR、NOT、XOR(互斥或)運算,今天要向各位說明如何使用兩組BitArray來做XOR(互斥或)運算。
一般來說如果我們要將Boolean進行XOR(互斥或)運算,會像下面這種方式:
bool a = true;
bool b = false;
bool c = a ^ b;
Console.WriteLine(c); //True
但是若您必須同時對好幾組相同大小的Boolean進行邏輯運算時,這時候就可以考慮使用BitArray類別來實作 XOR運算。
關於互斥或運算: 如果剛好只有一個運算元是 true,位元互斥 OR 運算會傳回 true;如果兩個運算元具有相同的布林值,則傳回 false。
static void Main(string[] args)
{
BitArray bitary1 = new BitArray(6);
bitary1[0] = true;
bitary1[1] = false;
bitary1[2] = true;
bitary1[3] = false;
bitary1[4] = true;
BitArray bitary2 = new BitArray(6);
bitary2[0] = false;
bitary2[1] = false;
bitary2[2] = true;
bitary2[3] = false;
bitary2[4] = true;
BitArray operary = bitary1.Xor(bitary2);
foreach (bool s in operary)
{
Console.WriteLine(s);
//True
//False
//False
//False
//False
}
Console.Read();
}
BitArray 用來運算的公用方法
And | 在目前 BitArray 中的元素上,針對指定的 BitArray 中的對應元素,執行位元的 AND 運算。 | |
Not | 反轉目前 BitArray 中的位元值,使得設定為 true 的元素變更為 false,並且設定為 false 的元素變更為 true。 | |
Or | 在目前 BitArray 中的元素上,針對指定的 BitArray 中的對應元素,執行位元的 OR 運算。 | |
Xor | 在目前 BitArray 中的元素上,針對指定的 BitArray 中的對應元素,執行位元互斥 OR 運算。 |
參考資料