b1 = 1 & 3; // 둘다 1일 때 1 아니면 0
//   1 -> 0001
// & 3 -> 0011
//        0001 -> 1

console.log(b1); // 1
b2 = 1 | 3; 
//   1 -> 0001
// | 3 -> 0011
//        0011 -> 3

console.log(b2); // 3
b3 = ~2; 
// ~   0000 0010
//     1111 1101 -> -3

console.log(b3); // 3
b4 = 4 << 2; // a << b -> a를 2의 b제곱만큼 곱해라
// 4를 2비트(2회) 왼쪽으로 이동(4에 2를 두번 곱)
// 0000 0100         4
// 0000 1000 (1회)   8
// 0001 0000 (2회)   16
// 결과 : 4 * 2 * 2 (비트수가 제곱수가 된다 4 * 2²)
console.log(b4); 
b5 = 4 >> 2; // a >> b -> a를 2의 b제곱만큼 나누어라
// 4를 2비트(2회) 오른쪽으로 이동(4에 2를 두번 나눈다)
// 0000 0100         4
// 0000 0010 (1회)   2
// 0001 0001 (2회)   1
// 결과 : 4 / 2 / 2 (비트수가 제곱수로 나눈값 4 / 2²)
console.log(b5); // 1