사용 방법
- ‘숫자’에 변환할 수를 입력합니다.
- ‘입력 진법’에서 그 수를 표기한 진법(2~36진법 또는 62진법)을 선택합니다.
- 2진수, 8진수, 10진수, 16진수, 36진수, 62진수 결과를 동시에 확인합니다.
- 그 밖의 진법이 필요하면 ‘사용자 지정 진법’에서 선택합니다.
바이트가 아니라 숫자를 변환합니다
이 도구는 숫자의 값을 변환합니다. 10진수 255는 2진수로 11111111, 8진수로 377, 16진수로 ff, 36진수로 73입니다.
Base16이나 Base2 같은 바이트 인코딩은 다른 일을 합니다. 텍스트나 파일을 인코딩하는 것입니다. 텍스트 255는 세 문자이며, 16진수로는 32 35 35, 2진수로는 00110010 00110101 00110101이라는 바이트로 저장됩니다. 숫자의 16진수 표기가 필요하면 이 페이지를, 문자나 파일의 16진수 표기가 필요하면 바이트 인코더를 이용하십시오.
자릿값 진법의 원리
어떤 진법이든 각 자리의 숫자는 진법을 그 자리 위치만큼 거듭제곱한 값의 가치를 가지며, 자리 위치는 오른쪽에서 0부터 셉니다. 16진수 ff는 15 × 16 + 15 = 255이고, 2진수 11111111은 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255입니다. 10보다 큰 진법은 숫자 다음에 영문자를 이어서 사용하므로, 36진수에서 a는 10, z는 35를 뜻합니다. 62진수는 다른 쪽 대소문자까지 추가로 사용하므로 대문자와 소문자의 값이 서로 다릅니다.
16진수 한 자리는 정확히 4비트, 8진수 한 자리는 3비트를 나타냅니다. 그래서 프로그래머는 2진수를 짧게 쓰는 방법으로 16진수와 8진수를 사용합니다. 1111 1111을 네 자리씩 묶어 바꾸면 ff가 됩니다.
큰 수와 음수
이 변환기는 임의 정밀도 정수(JavaScript BigInt)를 사용하므로 긴 수도 정확하게 유지됩니다. 많은 계산기와 일반 JavaScript 숫자는 9007199254740991(2의 53제곱 빼기 1)을 넘으면 정밀도를 잃습니다. 예를 들어 parseInt('ffffffffffffffff', 16)은 18446744073709552000을 반환하지만, 부호 없는 64비트 정수의 최댓값인 올바른 값은 18446744073709551615입니다.
음수는 마이너스 부호를 붙인 채 변환되므로 -255는 16진수로 -ff입니다. 이는 메모리에서 고정 폭 정수에 쓰는 2의 보수 형식이 아닙니다. 2의 보수를 얻으려면 먼저 2를 비트 폭만큼 거듭제곱한 값을 더하십시오. 8비트라면 -1 + 256 = 255이고, 이는 ff입니다. 분수는 지원하지 않으며 정수만 변환할 수 있습니다. 모든 처리는 브라우저에서 이루어집니다.
코드에서 진법 변환하기
// JavaScript
parseInt('ff', 16); // 255
(255).toString(2); // '11111111'
BigInt('0xffffffffffffffff').toString(10); // '18446744073709551615'
# Python
int('ff', 16) # 255
bin(255), oct(255), hex(255) # ('0b11111111', '0o377', '0xff')
자주 묻는 질문
2진수를 10진수로 어떻게 변환합니까?
2진수를 입력하고 2진법을 선택한 다음 10진수 결과를 확인하십시오. 손으로 계산할 때는 1인 자리의 자릿값을 모두 더합니다. 2진수 1010은 8 + 2 = 10입니다.
10진수를 16진수로 어떻게 변환합니까?
10진법을 선택한 상태에서 수를 입력하고 16진수 결과를 확인하십시오. 손으로 계산할 때는 16으로 계속 나눈 뒤 나머지를 역순으로 적습니다. 255를 16으로 나누면 몫이 15, 나머지가 15이므로 ff가 됩니다.
수의 크기에 제한이 있습니까?
정해진 제한은 없습니다. 이 도구는 BigInt 연산을 사용하므로 수백 자리의 수도 정확하게 변환됩니다. 아주 긴 수는 시간이 조금 더 걸릴 뿐입니다.
여기서 구한 255의 16진수가 Base16 인코더의 결과와 다른 이유는 무엇입니까?
소수점이 있는 수도 변환할 수 있습니까?
아니요. 이 변환기는 정수만 다룹니다. 0.1 같은 소수는 다른 진법에서 정확하게 표현되지 않는 경우가 많아 지원 범위에서 제외됩니다.