const b1 = 2 & 3;
console.log(b1); //2
//2 0010
//3 0011
// 0010 = 2
const b2 = 2 | 3;
console.log(b2); //3
//2 0010
//3 0011
// 0011 = 3
const b3 = 5 ^ 3;
console.log(b3); //6
//5 0101
//3 0011
// 0110 = 6
const b4 = ~ 4;
console.log(b4); //-4
//0000 0100 4
//1111 1011 -4
const b5 = 4 << 2;
console.log(b5); //16
//4를 2비트 왼쪽으로 이동한다.
//0000 0100 4
//0000 1000 8(1비트 이동)
//0001 0000 16(2비트 이동)
//4 * 2 * 2
const b6 = 4 >> 2;
console.log(b6); //1
//4를 2비트 오른쪽으로 이동한다.
//0000 0100 4
// 000 0010 2(1비트 이동)
// 00 0001 1(2비트 이동)
const b7 = 5 >>> 2;
const b8 = -5 >>> 2;
console.log(b7); //1
// 00000000000000000000000000000101 5
// 00000000000000000000000000000001 1(2비트 이동)
console.log(b8); //1073741822
// -00000000000000000000000000000101(=11111111111111111111111111111010) -5
// 00111111111111111111111111111110 1073741822(2비트 이동)
비트 연산자를 어디에 활용할 수 있을지 찾아봤지만 와닿지는 않았다. 하지만 중요한 사실은 내가 직접 0과 1을 제어할 수 있다는 것이다😇 당장 필요하지 않더라도 하나씩 알아가다 보면, 이유를 깨닫는 날이 오지 않을까🤔
도움이 됐어요 감사합니다:)
그런데 부정 논리 취할 시에 4 => -5가 되는것 같습니다!