사용 방법
- ‘진법 변환’에 수를 넣고 그 수의 진법을 고르면 2진수, 8진수, 10진수, 16진수 값이 바로 나옵니다. 3진수나 36진수처럼 다른 진법(2~36)을 고르면 그 진법의 값도 함께 보여 줍니다.
- 영문자는 대소문자를 가리지 않고, 공백과 밑줄(_)은 무시합니다. 고른 진법에 맞는 앞 표기(2진수 0b, 8진수 0o, 16진수 0x)는 붙인 채로 넣어도 됩니다.
- ‘진법 계산’에서는 2·8·10·16진수 중 하나를 고르고 두 수와 연산을 정하면 결과를 그 진법과 10진수로 함께 보여 줍니다. 나눗셈은 몫과 나머지를 같이 보여 줍니다.
- 2진수 결과는 읽기 쉽게 오른쪽부터 4자리씩 띄어 보여 줍니다. 공백은 무시되므로 이 값을 그대로 복사해 다시 넣어도 같은 수로 읽힙니다.
진법 변환 원리
- N진법에서는 오른쪽 끝 자리부터 1, N, N², N³…의 자리값을 가집니다. 10진수 352 = 3×100 + 5×10 + 2×1처럼, 다른 진법도 같은 원리로 읽습니다.
- N진수를 10진수로: 각 자리 숫자에 자리값을 곱해 모두 더합니다. 1011₂ = 1×8 + 0×4 + 1×2 + 1×1 = 11
- 10진수를 N진수로: 몫이 0이 될 때까지 N으로 나누기를 반복하고, 나머지를 마지막 것부터 거꾸로 읽습니다.
- 16진수는 0~9 다음에 A(10)~F(15)를 쓰고, 36진수는 Z(35)까지의 영문자를 숫자로 씁니다. 2AF₁₆ = 2×256 + 10×16 + 15 = 687
- 2진수 4자리는 16진수 1자리, 3자리는 8진수 1자리에 해당하므로 2진수와 16진수·8진수 사이는 자리를 묶기만 하면 됩니다. 1111 1111₂ = 377₈ = FF₁₆ = 255
단계별 예시: 10진수 200을 2진수와 16진수로
- 1단계, 2로 나눕니다: 200 ÷ 2 = 100 나머지 0, 100 ÷ 2 = 50 나머지 0, 50 ÷ 2 = 25 나머지 0, 25 ÷ 2 = 12 나머지 1
- 2단계, 몫이 0이 될 때까지 계속합니다: 12 ÷ 2 = 6 나머지 0, 6 ÷ 2 = 3 나머지 0, 3 ÷ 2 = 1 나머지 1, 1 ÷ 2 = 0 나머지 1
- 3단계, 나머지를 마지막 것부터 읽으면 11001000이므로 200 = 1100 1000₂입니다.
- 4단계, 2진수를 4자리씩 묶으면 1100 = C, 1000 = 8이라 16진수로 C8이고, 3자리씩 묶으면 11, 001, 000이라 8진수로 310입니다.
- 검산: C8₁₆ = 12×16 + 8 = 200, 310₈ = 3×64 + 1×8 + 0 = 200
진법 계산 예시
- 1010₂ + 0110₂ = 1 0000₂ (10진수로 10 + 6 = 16)
- 1111₂ ÷ 100₂ = 몫 11₂, 나머지 11₂ (10진수로 15 ÷ 4 = 몫 3, 나머지 3)
- 1100₂ AND 1010₂ = 1000₂, OR는 1110₂, XOR는 110₂ (10진수로 8, 14, 6)
- A5₁₆ XOR FF₁₆ = 5A₁₆ (10진수로 165 XOR 255 = 90). FF와 XOR하면 아래 8비트가 모두 뒤집힙니다.
- FF₁₆ + 1 = 100₁₆ (10진수로 255 + 1 = 256)
알아 두면 좋은 점
- 음수는 부호를 붙인 채 변환합니다(−5 → −101₂). 8비트 2의 보수 표기가 필요하면 256 − 5 = 251을 변환해 1111 1011₂(FB₁₆)를 얻고, 16비트라면 65536 − 5 = 65531(FFFB₁₆)을 변환합니다.
- 앞 표기는 고른 진법과 맞을 때만 떼어 냅니다. 16진수를 고른 상태에서 0b11을 넣으면 B11₁₆(10진수 2833)로 읽히므로, 2진수 값은 2진수를 고르고 넣으세요.
- 나눗셈의 몫은 0 쪽으로 버리고, 나머지의 부호는 첫 번째 수를 따릅니다. −7 ÷ 2 = 몫 −3, 나머지 −1
- 정수만 받으며, 소수점이 있으면 정수만 입력할 수 있다고 알려 줍니다. 대신 자릿수 제한이 없어 아주 긴 수도 오차 없이 계산합니다.
자주 묻는 질문
2진수를 10진수로 어떻게 바꾸나요?
‘진법 변환’에서 2진수를 고르고 수를 넣으면 10진수 값이 바로 나옵니다. 직접 계산하려면 오른쪽 끝 자리부터 1, 2, 4, 8…을 곱해 더하면 되며, 1011₂ = 8 + 2 + 1 = 11입니다.
10진수를 16진수로 바꾸는 방법은 무엇인가요?
16으로 나누기를 반복하고 나머지를 거꾸로 읽으면 됩니다. 200 ÷ 16 = 12 나머지 8, 12 ÷ 16 = 0 나머지 12(C)이므로 200 = C8₁₆입니다.
16진수 FF는 10진수로 얼마인가요?
255입니다. F는 15이므로 FF₁₆ = 15×16 + 15 = 255이고, 2진수로는 1111 1111입니다.
음수도 변환할 수 있나요?
네, 맨 앞에 −를 붙이면 −FF₁₆ = −255처럼 부호를 그대로 붙여 변환합니다. 8비트나 16비트 같은 고정 길이의 2의 보수 표기로는 바꾸지 않으므로, 필요하면 256 − 5 = 251처럼 2의 거듭제곱에서 뺀 값을 변환하세요.
음수로 AND, OR, XOR를 하면 어떻게 되나요?
음수를 왼쪽으로 1이 끝없이 이어지는 2의 보수로 보고 계산합니다. 예를 들어 −5 AND 3 = 3, −1 XOR 5 = −6이며, 이때 결과 아래에 이 처리 방식을 안내합니다.
소수점이 있는 수도 변환되나요?
아니요, 정수만 변환합니다. 대신 자릿수 제한 없이 아주 긴 정수도 오차 없이 정확하게 바꿉니다.
몇 진법까지 변환할 수 있나요?
2진법부터 36진법까지 변환할 수 있습니다. 10 이상의 숫자는 A(10)부터 Z(35)까지 영문자로 쓰며, 예를 들어 ZZ₃₆ = 1295입니다. 진법 계산은 2·8·10·16진수에서 할 수 있습니다.