Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phép XOR bitwise trên BitArray trong C#

Giới thiệu

BitArray (namespace System.Collections) biểu diễn mảng bit (true/false). Phương thức Xor(BitArray) thực hiện phép XOR (OR loại trừ) từng bit tương ứng, trả về IEnumerable (thực tế là BitArray mới).

Ví dụ 1: XOR đơn giản

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        BitArray arr1 = new BitArray(5);
        BitArray arr2 = new BitArray(5);
        arr1[0] = false;
        arr1[1] = false;
        arr2[0] = false;
        arr2[1] = true;

        Console.WriteLine("Các phần tử BitArray1...");
        foreach (bool res in arr1)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("\nCác phần tử BitArray2...");
        foreach (bool res in arr2)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("\nPhép XOR bitwise...");
        IEnumerable demoEnum = arr1.Xor(arr2);
        foreach (object ob in demoEnum)
        {
            Console.WriteLine(ob);
        }
    }
}

Kết quả

Các phần tử BitArray1...
False
False
False
False
False
Các phần tử BitArray2...
False
True
False
False
False
Phép XOR bitwise...
False
True
False
False
False

Ví dụ 2: XOR với nhiều bit true

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        BitArray arr1 = new BitArray(5);
        BitArray arr2 = new BitArray(5);
        arr1[0] = false;
        arr1[1] = false;
        arr1[2] = false;
        arr1[3] = true;
        arr1[4] = false;
        arr2[0] = false;
        arr2[1] = true;
        arr2[2] = false;
        arr2[3] = true;
        arr2[4] = true;

        Console.WriteLine("Các phần tử BitArray1...");
        foreach (bool res in arr1)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("\nCác phần tử BitArray2...");
        foreach (bool res in arr2)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("\nPhép XOR bitwise...");
        IEnumerable demoEnum = arr1.Xor(arr2);
        foreach (object ob in demoEnum)
        {
            Console.WriteLine(ob);
        }
    }
}

Kết quả

Các phần tử BitArray1...
False
False
False
True
False
Các phần tử BitArray2...
False
True
False
True
True
Phép XOR bitwise...
False
True
False
False
True

Bảng chân trị XOR

Bit ABit BA XOR B
000
011
101
110

Các phương thức bitwise khác

  • And(BitArray) – AND bitwise.
  • Or(BitArray) – OR bitwise.
  • Not() – NOT bitwise (đảo bit).
  • SetAll(bool) – gán tất cả bit.