자바스크립트 변수의 시프트 연산을 수행하는 방법

시프트 연산은 프로그래밍에서 자주 사용되는 연산 중 하나입니다. 이 연산은 변수의 값을 비트 단위로 왼쪽 또는 오른쪽으로 이동시키는 데 사용됩니다. 자바스크립트에서 시프트 연산을 수행하기 위해 제공되는 연산자는 << (왼쪽 시프트)와 >> (부호 있는 오른쪽 시프트), >>> (부호 없는 오른쪽 시프트)입니다.

왼쪽 시프트 (<<) 연산자

왼쪽 시프트 연산자(<<)는 변수의 값을 왼쪽으로 지정된 비트 수만큼 이동시킵니다. 왼쪽으로 이동된 비트는 값이 0으로 채워집니다. 예를 들어, 변수 x의 값을 왼쪽으로 2비트 시프트하면 x << 2의 형태로 표기할 수 있습니다.

let x = 5; // 이진수로 00000000000000000000000000000101
let result = x << 2; // 왼쪽으로 2비트 이동

console.log(result); // 20 (이진수로 00000000000000000000000000010100)

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

오른쪽 시프트 연산자(>>)는 변수의 값을 오른쪽으로 지정된 비트 수만큼 이동시킵니다. 오른쪽 이동된 비트는 부호 비트와 동일한 값으로 채워집니다. 양수는 0, 음수는 1 비트로 채워집니다. 예를 들어, 변수 x의 값을 오른쪽으로 3비트 시프트하면 x >> 3의 형태로 표기할 수 있습니다.

let x = 16; // 이진수로 00000000000000000000000000010000
let result = x >> 3; // 오른쪽으로 3비트 이동

console.log(result); // 2 (이진수로 00000000000000000000000000000010)

부호 없는 오른쪽 시프트 (>>>) 연산자

부호 없는 오른쪽 시프트 연산자(>>>)는 변수의 값을 오른쪽으로 지정된 비트 수만큼 이동시킵니다. 오른쪽 이동된 비트는 항상 0으로 채워집니다. 예를 들어, 변수 x의 값을 부호 없는 오른쪽으로 4비트 시프트하면 x >>> 4의 형태로 표기할 수 있습니다.

let x = -10; // 이진수로 11111111111111111111111111110110
let result = x >>> 4; // 부호 없는 오른쪽으로 4비트 이동

console.log(result); // 268435454 (이진수로 00001111111111111111111111111110)

자바스크립트 변수의 시프트 연산은 비트 연산을 수행하는 데 사용되며, 알고리즘 구현이나 효율적인 데이터 처리에 유용합니다. 이후 애플리케이션 개발에서 시프트 연산을 적절히 활용하여 성능과 메모리 효율성을 개선할 수 있습니다.