진법 변환기
2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 숫자를 변환합니다. 큰 수, 2의 보수, 비트 보기 지원.
코드 예제
내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.
const value = 255n
console.log([2, 8, 16].map((base) => value.toString(base)).join(' '))할 수 있는 일
숫자를 2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 변환합니다. 긴 수의 모든 자리를 유지하고, 8·16·32·64비트의 2의 보수 패턴을 보여 주며, 비트를 하나씩 뒤집을 수 있습니다.
사용 방법
- 입력란이나 아무 행에 숫자를 입력하거나 붙여넣습니다.
- 입력 진법, 2~36의 사용자 진법, 비트 너비를 고릅니다.
- 다른 행을 읽고, 비트를 눌러 뒤집고, 결과를 복사합니다.
예시
255는 2진수로 1111 1111, 8진수로 377, 16진수로 FF입니다.
8비트의 -1은 2의 보수로 1111 1111이며, FF를 8비트 부호 있는 수로 읽으면 다시 -1이 됩니다.
알아 두면 좋은 점
- 접두사
0b·0o·0x와 자릿수 사이의 밑줄, 공백을 쓸 수 있습니다. - 숫자는 64비트나 2^53으로 제한되지 않습니다. 비트 보기는 값이 선택한 너비에 들어갈 때만 나타납니다.
- 입력을 2의 보수 패턴으로 읽기를 켜면
FF를 255 대신-1로 읽습니다.
2진수에서 음수는 어떻게 나타내나요?
컴퓨터는 음수를 2의 보수로 저장합니다. 모든 비트를 뒤집고 1을 더합니다. 8비트에서 -1은 1111 1111, -128은 1000 0000입니다. 같은 패턴도 부호 없이 읽으면 255나 128이므로 너비와 부호가 중요합니다.
자주 묻는 질문
왜 2^53보다 큰 수도 처리하나요?
많은 변환기는 부동소수점 수를 써서 9,007,199,254,740,992를 넘으면 자릿수를 잃습니다. 이 도구는 임의 정밀도 정수를 사용하므로 긴 수의 모든 자리가 유지됩니다.
0x, 0b, 0o 접두사는 무엇인가요?
소스 코드에서 진법을 나타내는 표시입니다. 0x는 16진수, 0b는 2진수, 0o는 8진수입니다. 입력해도 생략해도 됩니다. 자릿수 사이의 밑줄과 공백은 무시됩니다.
이 도구가 숫자를 어딘가로 전송하나요?
아니요. 모든 처리는 브라우저에서 이루어지며, 입력한 내용은 서버로 전송되지 않습니다.