使用BitArray進行互斥或運算

摘要:使用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 運算。

參考資料