[c] 쉬프트 연산자

컴퓨터 프로그래밍에서 쉬프트 연산자는 비트 단위로 데이터를 이동시키는 연산자를 말합니다. 쉬프트 연산자는 주로 정수형 데이터의 비트 단위 연산에 사용됩니다. 이 연산자에는 왼쪽 쉬프트 연산자(<<), 오른쪽 쉬프트 연산자(>>)가 있습니다.

왼쪽 쉬프트 연산자 («)

왼쪽 쉬프트 연산자를 사용하면 주어진 피연산자의 비트를 왼쪽으로 이동시킵니다. 각 비트는 지정된 수만큼 이동하며, 공백에 해당하는 비트는 0으로 채워집니다.

unsigned int a = 5; // 0000 0101
unsigned int result = a << 2; // 0001 0100 (20)

오른쪽 쉬프트 연산자 (»)

오른쪽 쉬프트 연산자는 주어진 피연산자의 비트를 오른쪽으로 이동시킵니다. 각 비트는 지정된 수만큼 이동하며, 부호 비트는 유지됩니다. 이 연산은 주로 양수를 2로 나누는 효과가 있습니다.

unsigned int b = 20; // 0001 0100
unsigned int result = b >> 2; // 0000 0101 (5)

쉬프트 연산자는 비트 연산과 성능 향상을 위해 사용되며, 주로 임베디드 시스템이나 하드웨어 제어와 관련된 프로그래밍에서 많이 활용됩니다.

쉬프트 연산자의 활용은 비트 단위 연산에 있어서 중요한 개념이므로, 실무에서 프로그래밍을 할 때 유용하게 활용할 수 있는 연산자입니다.

참고 자료