<< 연산자(C# 참조)

업데이트: 2007년 11월

왼쪽 시프트 연산자(<<)는 첫째 피연산자를 둘째 피연산자에서 지정한 비트 수만큼 비트 단위로 왼쪽으로 이동합니다. 둘째 피연산자의 형식은 int여야 합니다.

설명

첫째 피연산자가 32비트 용량의 int 또는 uint 형식이면 시프트 횟수는 둘째 피연산자의 하위 5비트로 지정됩니다.

첫째 피연산자가 64비트 용량의 long 또는 ulong 형식이면 시프트 횟수는 둘째 피연산자의 하위 6비트로 지정됩니다.

첫째 피연산자의 상위 비트는 무시되고 비어 있는 하위 비트는 0으로 채워집니다. 시프트 연산은 오버플로를 일으키지 않습니다.

사용자 정의 형식으로 << 연산자를 오버로드할 수 있습니다(operator 참조). 이 경우, 첫째 피연산자의 형식은 사용자 정의 형식이어야 하며 둘째 피연산자의 형식은 int여야 합니다. 이항 연산자가 오버로드되면 해당 대입 연산자도 암시적으로 오버로드됩니다.

예제

class MainClass11
{
    static void Main()
    {
        int i = 1;
        long lg = 1;
        Console.WriteLine("0x{0:x}", i << 1);
        Console.WriteLine("0x{0:x}", i << 33);
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}
/*
Output:
0x2
0x2
0x200000000
*/

설명

1과 33은 하위 5비트가 같기 때문에 i<<1과 i<<33 의 결과는 같습니다.

참고 항목

개념

C# 프로그래밍 가이드

참조

C# 연산자

기타 리소스

C# 참조