home강의 홈으로
Section 9. 추가 자료형들
Lesson 1. 2, 8, 16진법과 비트 연산자
I. 다른 진법들
👉 MDN 문서 보기
2진법 binary
[
0b1,
0b10,
0b11,
0b100,
0b101
].forEach(i => console.log(i))
console.log(
0b2 // ⚠️ 토큰으로 인식 - 오류
);
8진법 octal
[
0o7,
0o10,
0o100,
0o1000,
].forEach(i => console.log(i))
console.log(
0o8 // ⚠️ 토큰으로 인식 - 오류
);
16진법 hexadecimal
0x
뒤로 숫자 0~9, A~F 를 붙여 표현
[
0x9,
0xA,
0xB,
0xC,
0xd,
0xe,
0xf,
0x10,
0xFFFFFF
].forEach(i => console.log(i))
⭐️ 진법 간 변환
const num = 123456789;
const binStr = num.toString(2);
const octStr = num.toString(8);
const hexStr = num.toString(16);
console.log(binStr, octStr, hexStr);
console.log(
parseInt(binStr, 2),
parseInt(octStr, 8),
parseInt(hexStr, 16)
);
- 이 외에도 2 ~ 36 사이의 진법 사용 가능 - toString과 parseInt의 가용 인자 범위
// 💡 상호변환
console.log(
parseInt(hexStr, 16).toString(2),
parseInt(binStr, 2).toString(8),
parseInt(octStr, 8).toString(16)
);
II. 비트 연산자들
👉 MDN 문서 보기
let x = 0b1010101010; // 682
let y = 0b1111100000; // 992
// 양쪽 모두 1인 자리에 1
const bitAnd = x & y;
console.log(bitAnd);
console.log(
bitAnd.toString(2)
);
// 한 쪽이라도 1인 자리에 1
const bitOr = x | y
console.log(bitOr);
console.log(
bitOr.toString(2)
);
// 양쪽이 다른 자리에 1
const bitXor = x ^ y;
console.log(bitXor);
console.log(
bitXor.toString(2)
);
// 각 비트 반전
console.log(~x);
console.log(
(~x).toString(2)
);
console.log(~y);
console.log(
(~y).toString(2)
);
let x = 0b101; // 5
console.log(x.toString(2), x);
// 반복 실행해볼 것, 오른쪽 숫자를 늘려 볼 것
x = x << 1;
console.log(x.toString(2), x);
// 반복 실행해볼 것, 오른쪽 숫자를 늘려 볼 것
x = x >> 1;
console.log(x.toString(2), x);
🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )
🛑질문 전 필독!!
- 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
- 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
- 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
- "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
- 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.