Toán tử so sánh bit trong C#



Các toán tử so sánh bit được hỗ trợ bởi ngôn ngữ C# được liệt kê trong bảng dưới đây. Giá sử ta có biến A có giá tri 60 và biến B có giá trị 13, ta có:

Toán tử Miêu tả Ví dụ
& Toán tử AND (và) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng. (A & B) sẽ cho kết quả là 12, tức là 0000 1100
| Toán tử OR (hoặc) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng. (A | B) sẽ cho kết quả là 61, tức là 0011 1101
^ Toán tử XOR nhị phân sao chép bit mà nó chỉ tồn tại trong một toán hạng mà không phải cả hai. (A ^ B) sẽ cho kết quả là 49, tức là 0011 0001
~ Toán tử đảo bit (đảo bit 1 thành bit 0 và ngược lại). (~A ) sẽ cho kết quả là -61, tức là 1100 0011.
<< Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải. A << 2 sẽ cho kết quả 240, tức là 1111 0000 (dịch sang trái hai bit)
>> Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải. A >> 2 sẽ cho kết quả là 15, tức là 0000 1111 (dịch sang phải hai bit)

Ví dụ

Dưới đây là ví dụ minh họa tất cả toán tử so sánh bit có sẵn trong C#:

using System;namespace VietJackCsharp
{
    class TestCsharp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Toan tu so sanh bit trong C#");
            Console.WriteLine("-----------------------");            int a = 60;            /* 60 = 0011 1100 */
            int b = 13;            /* 13 = 0000 1101 */
            int c = 0;            c = a & b;             /* 12 = 0000 1100 */
            Console.WriteLine("1 - Gia tri cua c la {0}", c);            c = a | b;             /* 61 = 0011 1101 */
            Console.WriteLine("2 - Gia tri cua c la {0}", c);            c = a ^ b;             /* 49 = 0011 0001 */
            Console.WriteLine("3 - Gia tri cua c la {0}", c);            c = ~a;                /*-61 = 1100 0011 */
            Console.WriteLine("4 - Gia tri cua c la {0}", c);            c = a << 2;      /* 240 = 1111 0000 */
            Console.WriteLine("5 - Gia tri cua c la {0}", c);            c = a >> 2;      /* 15 = 0000 1111 */
            Console.WriteLine("6 - Gia tri cua c la {0}", c);
            Console.ReadLine();            Console.ReadKey();
        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Toán tử so sánh bit trong C#
toan_tu_trong_csharp.jsp