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 A | Bit B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
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.