자바스크립트 변수의 시프트 연산을 수행하는 방법
시프트 연산은 프로그래밍에서 자주 사용되는 연산 중 하나입니다. 이 연산은 변수의 값을 비트 단위로 왼쪽 또는 오른쪽으로 이동시키는 데 사용됩니다. 자바스크립트에서 시프트 연산을 수행하기 위해 제공되는 연산자는 <<
(왼쪽 시프트)와 >>
(부호 있는 오른쪽 시프트), >>>
(부호 없는 오른쪽 시프트)입니다.
왼쪽 시프트 (<<
) 연산자
왼쪽 시프트 연산자(<<
)는 변수의 값을 왼쪽으로 지정된 비트 수만큼 이동시킵니다. 왼쪽으로 이동된 비트는 값이 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)
자바스크립트 변수의 시프트 연산은 비트 연산을 수행하는 데 사용되며, 알고리즘 구현이나 효율적인 데이터 처리에 유용합니다. 이후 애플리케이션 개발에서 시프트 연산을 적절히 활용하여 성능과 메모리 효율성을 개선할 수 있습니다.