비트 연산자는 비트에 대해 작동하고 비트 단위로 연산을 수행합니다.
다음은 Bitwise 연산자입니다.
| 연산자 | 설명 | 예 |
|---|---|---|
| & | 이진 AND 연산자는 두 피연산자 모두에 존재하는 경우 결과에 비트를 복사합니다. | (A &B) =12, 즉 0000 1100 |
| | | 이진 OR 연산자는 피연산자 중 하나에 존재하는 경우 비트를 복사합니다. | (A | B) =61, 즉 0011 1101 |
| ^ | 이진 XOR 연산자는 하나의 피연산자에만 설정되어 있는 경우 비트를 복사합니다. | (A ^ B) =49, 즉 0011 0001 |
| ~ | 이진 1의 보수 연산자는 단항이며 비트를 '뒤집는' 효과가 있습니다. | (~A ) =61, 부호 있는 이진수로 인해 2의 보수에서 1100 0011입니다. |
| << | 이진 왼쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다. | A <<2 =240, 즉 1111 0000 |
| >> | 이진 오른쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다. | A>> 2 =15, 즉 0000 1111 |
다음은 C#에서 비트 연산자를 사용하는 방법을 보여주는 예입니다.
예시
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; /* 12 = 0000 1100 */
Console.WriteLine("Value of c is {0}", c );
c = a | b; /* 61 = 0011 1101 */
Console.WriteLine("Value of c is {0}", c);
c = a ^ b; /* 49 = 0011 0001 */
Console.WriteLine("Value of c is {0}", c);
c = ~a; /*-61 = 1100 0011 */
Console.WriteLine("Value of c is {0}", c);
c = a << 2; /* 240 = 1111 0000 */
Console.WriteLine("Value of c is {0}", c);
c = a >> 2; /* 15 = 0000 1111 */
Console.WriteLine("Value of c is {0}", c);
Console.ReadLine();
}
}
} 출력
Value of c is 12 Value of c is 61 Value of c is 49 Value of c is -61 Value of c is 240 Value of c is 15