Toán tử bitwise làm việc trên các bit và thực hiện phép toán bit-by-bit.
Các toán tử bitwise:
| Toán tử | Mô tả | Ví dụ |
|---|---|---|
| & | AND nhị phân: copy bit nếu tồn tại ở cả hai toán hạng. | (A & B) = 12 (0000 1100) |
| | | OR nhị phân: copy bit nếu tồn tại ở một trong hai. | (A | B) = 61 (0011 1101) |
| ^ | XOR nhị phân: copy bit nếu set ở một toán hạng nhưng không phải cả hai. | (A ^ B) = 49 (0011 0001) |
| ~ | Ones Complement: unary, đảo bit. | (~A) = 61 (1100 0011 trong bù 2) |
| << | Left Shift: dịch trái bit. | A << 2 = 240 (1111 0000) |
| >> | Right Shift: dịch phải bit. | A >> 2 = 15 (0000 1111) |
Ví dụ
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; Console.WriteLine("c = {0}", c); // 12
c = a | b; Console.WriteLine("c = {0}", c); // 61
c = a ^ b; Console.WriteLine("c = {0}", c); // 49
c = ~a; Console.WriteLine("c = {0}", c); // -61
c = a << 2; Console.WriteLine("c = {0}", c); // 240
c = a >> 2; Console.WriteLine("c = {0}", c); // 15
}
}
}
Kết quả
c = 12 c = 61 c = 49 c = -61 c = 240 c = 15