JS - bit 연산자


어떻게 보면 가장 근본적이라고 할 수 있는 비트 연산자에 대해 메모하려한다.
간단하게 데이터의 기본 단위 Byte8bit 가 모여서 이루는 단위이고, 1bit 의 값은 0, 1 이다.

기본 연산자

& (AND 연산자)

피연산자 둘 다 1일 경우 1을 반환

console.log(7 & 1);   // 1

| (OR 연산자)

피연산자 둘 중 하나만 1이라도 1을 반환

console.log(7 | 1);   // 7

^ (XOR 연산자)

피연산자 값이 같으면 0, 다르면 1을 반환

console.log(7 ^ 1);   // 6

~ (NOT 연산자)

양수이면 음수로 변환 후 -1, 음수이면 양수로 변환 후 -1

console.log(~4);    // -5
console.log(~-3);   // 2

이동 연산자

이동하면서 발생하는 빈자리는 0으로 채워진다.

<< (왼쪽 이동 연산자)

연산자 우측에 지정한 수만큼 좌측 비트를 왼쪽을 이동

console.log(4 << 2);  // 16

>> (오른쪽 이동 연산자)

연산자 우측에 지정한 수만큼 좌측 비트를 사인 부호를 제외하고 오른쪽을 이동

console.log(7 >> 1);  // 3
console.log(-8 >> 1);  // -3

>>> (오른쪽 이동연산자)

연산자 우측에 지정한 수만큼 좌측 비트를 사인 부호를 포함하고 오른쪽을 이동
이동된 MSB 는 0 이 된다.

console.log(7 >>> 1);  // 3
console.log(-8 >>> 1);  // 2147483644

Tags:

Categories:

Updated: