[kotlin] 비트 이동 연산자와 시프트 연산자

컴퓨터 과학 및 프로그래밍에서 비트 이동 연산자는 특정 비트 패턴을 왼쪽이나 오른쪽으로 이동시키는 데 사용됩니다. 비트 이동 연산자는 데이터의 이진 표현을 변경하거나 반전하는 데 유용하며, 주로 시프트 연산자를 통해 구현됩니다.

시프트 연산자

왼쪽 시프트 연산자 («)

왼쪽 시프트 연산자는 피연산자의 비트를 왼쪽으로 이동시킵니다. 왼쪽으로 이동하는 만큼 수에 2의 거듭제곱을 곱한 결과와 같습니다. 예를 들어, a << b는 a를 b비트만큼 왼쪽으로 이동한 값을 반환합니다.

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

오른쪽 시프트 연산자는 피연산자의 비트를 오른쪽으로 이동시킵니다. 오른쪽으로 이동하는 만큼 수를 2의 거듭제곱으로 나눈 결과와 같습니다. 부호가 있는 오른쪽 시프트 연산자 (»)는 가장 왼쪽의 비트를 유지하면서 오른쪽으로 이동시킵니다. 반면, 부호가 없는 오른쪽 시프트 연산자 (»>)는 가장 왼쪽의 비트에 상관없이 오른쪽으로 이동합니다.

예를 들어, -8 >> 1의 경우, -4를 반환하며, -8 >>> 1의 경우, 2147483644를 반환합니다.

비트와 시프트 연산자는 주로 저수준 프로그래밍에서 사용되며, 알고리즘 및 데이터 구조에서 유용하게 활용됩니다.

자세한 내용은 Kotlin 공식 문서를 참조하세요.