Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 오른쪽 시프트(Right Shift) 연산자 사용 방법 완벽 정리

C# 오른쪽 시프트(>>) 연산자란?

C#의 오른쪽 시프트 연산자(>>)는 비트 조작(bit manipulation)에 사용되는 기본 연산자 중 하나입니다. 이 연산자는 왼쪽 피연산자(operand)의 값을, 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동시킵니다.

비트가 오른쪽으로 이동할 때마다 값은 사실상 2로 나누어지는 효과가 있습니다. 예를 들어, 2비트를 오른쪽으로 시프트하면 원래 값의 1/4이 됩니다.

오른쪽 시프트 연산자 예제 코드

다음은 C#에서 오른쪽 시프트 연산자를 사용하는 간단한 예제입니다.

using System;

namespace OperatorsAppl {

    class Program {

        static void Main(string[] args) {
            int a = 60; /* 60 = 0011 1100 */
            int b = 0;

            b = a >> 2; /* 15 = 0000 1111 */
            Console.WriteLine("Right Shift Operator - Value of b is {0}", b);
            Console.ReadLine();
        }
    }
}

코드 동작 원리 설명

위 코드에서 변수 a의 값은 60이며, 이를 2진수로 표현하면 다음과 같습니다.

0011 1100

여기서 위 예제처럼 오른쪽 시프트 연산자를 적용합니다. 아래 표현식은 비트를 오른쪽으로 두 번 이동시킵니다.

a >> 2

각 비트가 오른쪽으로 한 칸씩 두 번 이동하면서, 맨 오른쪽의 두 비트(0, 0)는 버려지고 왼쪽에는 0이 채워집니다.

실행 결과

연산 결과 값은 15가 되며, 2진수로는 다음과 같습니다.

15 = 0000 1111

즉, 60을 2²인 4로 나눈 값인 15가 출력되는 것을 확인할 수 있습니다. 이처럼 오른쪽 시프트 연산자는 나눗셈 연산을 빠르게 수행해야 하거나, 비트 단위로 데이터를 처리해야 하는 경우에 유용하게 활용됩니다.