두 개의 피연산자의 각 자리마다 대응하는 비트가 모두 1일 경우 1을 반환해줍니다.
a & b
a | b | a AND b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
비트 부정연산자는 피연산자의 비트를 반전시킵니다. 다른 비트 연산자와 마찬가지로 32비트 이상인 다음 정수는 32비트 정수로 변환됩니다.
~a
a | a NOT |
---|---|
0 | 1 |
1 | 0 |
피연산자는 2의 보수 에 따라 반전됩니다 . 즉, 최상위 비트의 존재는 음의 정수를 표현하는 데 사용됩니다.
논리 연사자는 피연사자 중 하나 또는 둘 모두의 해당 비트가 1 일경우 1을 반환합니다.
a|b
a | b | a OR b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
배타적 논리 연산자는 두 피연산자가 동일할경우 0 다를경우 1을 반환합니다.
a ^ b
a | b | a XOR b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
왼쪽 시프트 연산자는 첫 번째 피연산자를 지정된 비트 수 만큼 왼쪽으로 이동시킵니다. 왼쪽으로 이동된 초과 비트는 폐기됩니다.
a << b
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010
console.log(a << b); // 00000000000000000000000000010100
// expected output: 20