Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C# 비트 및 비트 시프트 연산자


비트 연산자는 비트에 대해 작동하고 비트 단위 연산을 수행합니다.

C#에서 지원하는 Bitwise 연산자는 다음 표에 나열되어 있습니다. 변수 A가 60을 보유하고 변수 B가 13을 보유한다고 가정 -

연산자
설명
예시
&
Bitwise AND 연산자는 두 피연산자 모두에 존재하는 경우 결과에 비트를 복사합니다.
(A &B) =12, 0000 1100
|
Bitwise OR 연산자는 피연산자 중 하나에 있는 경우 비트를 복사합니다.
(A | B) =61, 즉 0011 1101
^
Bitwise XOR 연산자는 하나의 피연산자에만 설정되어 있는 경우 비트를 복사합니다.
(A ^ B) =49, 즉 0011 0001
~
Bitwise 1의 보수 연산자는 단항이며 비트를 '뒤집는' 효과가 있습니다.
(~A ) =61, 이는 부호 있는 이진수로 인해 2의 보수로 1100 0011입니다.
<<
비트 왼쪽 시프트 연산자
왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다.
A <<2 =240, 즉 1111 0000
>>
비트 오른쪽 시프트 연산자
왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다.
A>> 2 =15, 즉 0000 1111

예시

다음은 C#에서 Bitwise 연산자를 구현하는 방법을 보여주는 예입니다.

using System;
namespace MyApplication {
   class Program {
      static void Main(string[] args) {
         int a = 60; /* 60 = 0011 1100 */
         int b = 13; /* 13 = 0000 1101 */
         int c = 0;
         // Bitwise AND Operator
         c = a &amp; b; /* 12 = 0000 1100 */
         Console.WriteLine("Line 1 - Value of c is {0}", c );
         // Bitwise OR Operator
         c = a | b; /* 61 = 0011 1101 */
         Console.WriteLine("Line 2 - Value of c is {0}", c);
         // Bitwise XOR Operator
         c = a ^ b; /* 49 = 0011 0001 */
         Console.WriteLine("Line 3 - Value of c is {0}", c);
         // Bitwise Complement Operator
         c = ~a; /*-61 = 1100 0011 */
         Console.WriteLine("Line 4 - Value of c is {0}", c);
         // Bitwise Left Shift Operator
         c = a << 2; /* 240 = 1111 0000 */
         Console.WriteLine("Line 5 - Value of c is {0}", c);
         // Bitwise Right Shift Operator
         c = a >> 2; /* 15 = 0000 1111 */
         Console.WriteLine("Line 6 - Value of c is {0}", c);
         Console.ReadLine();
      }
   }
}

출력

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15