-
9-1. JavaScript 2진법, 8진법, 16진법과 비트 연산자JavaScript 2023. 4. 7. 19:05
I. 다른 진법들
1. 2진법 (binary)
- 0b 뒤로 숫자 0, 1를 붙여 표현
[ 0b1, 0b10, 0b11, 0b100, 0b101 ].forEach(i => console.log(i)) // 1 2 3 4 5
2. 8진법 (octal)
- 0o 뒤로 숫자 0 ~ 7를 붙여 표현
[ 0o7, 0o10, 0o100, 0o1000, ].forEach(i => console.log(i)) // 7 8 64 512
3. 16진법 (hexadecimal)
- 0x 뒤로 숫자 0 ~ 9, A ~ F를 붙여 표현
[ 0x9, 0xA, 0xB, 0xC, 0xd, 0xe, 0xf, 0x10, 0xFFFFFF ].forEach(i => console.log(i)) // 9 10 11 12 13 14 15 16 16777215
✨진법 간 변환
const num = 123456789; const binStr = num.toString(2); const octStr = num.toString(8); const hexStr = num.toString(16); console.log(binStr, octStr, hexStr); // 111010110111100110100010101 726746425 75bcd15 console.log( parseInt(binStr, 2), // 123456789 parseInt(octStr, 8), // 123456789 parseInt(hexStr, 16) // 123456789 );
II. 비트 연산자들
let x = 0b1010101010; // 682 let y = 0b1111100000; // 992 // 양쪽 모두 1인 자리에 1 const bitAnd = x & y; console.log(bitAnd); // 672 console.log( bitAnd.toString(2) // 1010100000 ); // 한 쪽이라도 1인 자리에 1 const bitOr = x | y console.log(bitOr); // 1002 console.log( bitOr.toString(2) // 1111101010 ); // 양쪽이 다른 자리에 1 const bitXor = x ^ y; console.log(bitXor); // 330 console.log( bitXor.toString(2) // 101001010 ); // 각 비트 반전 console.log(~x); // -683 console.log( (~x).toString(2) // -1010101011 ); console.log(~y); // -993 console.log( (~y).toString(2) // -1111100001 );
'JavaScript' 카테고리의 다른 글
9-3. JavaScript Symbol 자료형 (0) 2023.04.07 9-2. JavaScript BigInt 자료형 (0) 2023.04.07 8-3. JavaScript JSON의 모든 것 (0) 2023.04.07 8-2. JavaScript 프로퍼티 어트리뷰트(property attributes) (0) 2023.04.07 8-1. JavaScript Object 의 모든 것 (0) 2023.04.07