컴퓨터 진법 변환 공식과 2진수 8진수 10진수 16진수 계산법

진법 변환기

입력창에 숫자를 입력하고 원래 진법을 선택하여 2진수부터 16진수까지의 변환 값을 표로 실시간 대조해 보세요.

컴퓨터 프로그래밍과 디지털 하드웨어 설계를 다룰 때 10진수와 함께 2진수, 8진수, 16진수 간의 진법 변환을 빈번하게 수행합니다. 컴퓨터는 기본적으로 0과 1로 대변되는 2진수 시스템으로 연산하지만, 개발자에게는 데이터의 가독성을 높이기 위해 16진수(Hexadecimal)나 10진수 표기가 훨씬 직관적이기 때문입니다. 본 글에서는 각 진법 간 상호 변환 공식과 컴퓨터 전산학적 원리를 정리하여 해설합니다.


1. 진법 변환의 수학적 원리 공식

임의의 $b$진법 수 $N_b$가 다음과 같이 주어질 때: [ N_b = (d_k d_{k-1} \dots d_1 d_0 . d_{-1} d_{-2} \dots)b ] 이 값을 10진수로 변환하는 공식은 각 자릿수 숫자($d_i$)에 밑($b$)의 자릿수 거듭제곱 가중치를 곱해 모두 더하는 것입니다: [ N{10} = \sum_{i=-\infty}^{k} d_i \times b^i ]

① 10진수를 다른 진법으로 변환 (나눗셈 연산)

10진수 정수를 원하는 진법의 밑($b$)으로 더 이상 나눠지지 않을 때까지 반복해서 나누고, 그 **나머지(Remainder)**들을 역순으로 나열하여 변환합니다.

② 2진수와 16진수의 1대1 다이렉트 변환

16진수의 밑 $16$은 $2^4$이므로, 2진수 4자리는 정확히 16진수 1자리에 대응됩니다. 이 규칙 덕분에 복잡한 산술 나눗셈 과정 없이 4자리씩 끊어 읽는 것만으로도 두 진법 간 변환을 즉시 수행할 수 있습니다:

  • 2진수 1111 $\rightarrow$ 16진수 F
  • 2진수 1010 $\rightarrow$ 16진수 A

2. 자바스크립트 내장 진법 변환 내장 메서드

자바스크립트에서는 숫자의 내부 10진 표현을 다채로운 문자열 진법으로 인코딩하거나 디코딩할 수 있는 강력한 내장 함수를 제공합니다.

  • 10진수 $\rightarrow$ N진수 문자열 변환: Number.prototype.toString(radix)
    const decimalNum = 255;
    const binaryStr = decimalNum.toString(2);   // "11111111"
    const hexStr = decimalNum.toString(16);     // "ff"
    
  • N진수 문자열 $\rightarrow$ 10진수 변환: parseInt(string, radix)
    const parsedDec = parseInt("ff", 16);       // 255
    const parsedBin = parseInt("1101", 2);      // 13
    

[!NOTE] 매번 윈도우 계산기를 개발자 모드로 전환하거나 종이에 손으로 나눗셈을 해가며 진법 변환을 수행할 필요 없이, 진법 변환기 도구를 활용하면 숫자를 기입하는 순간 2진수, 8진수, 10진수, 16진수 결괏값 테이블을 동시에 실시간으로 매핑 출력해 줍니다.

진법 변환기

입력창에 숫자를 입력하고 원래 진법을 선택하여 2진수부터 16진수까지의 변환 값을 표로 실시간 대조해 보세요.


3. 진법 조작 시 개발자가 유의해야 할 에러 팁

  1. 소수점 아래의 진법 변환 오차: 정수와 달리 소수점 이하 숫자는 10진 소수가 2진 소수로 변환될 때 무한소수가 되는 경우가 흔합니다(예: 10진수 0.1은 2진수로 0.0001100110011...로 순환합니다). 이로 인해 부동 소수점 오차가 발생하므로, 금융이나 정밀 계산 시에는 원시 값을 정수로 변환하여 연산한 후 다시 소수로 환원하는 방식을 권장합니다.
  2. 접두사(Prefix) 인식 오류: 코드 내에서 16진수는 0x, 8진수는 0o, 2진수는 0b 접두사를 사용해 선언합니다. 진법 변환기 등에 입력할 때는 이 접두사가 포함되었는지 여부에 따라 파서 엔진이 문자를 엉뚱한 값으로 해석하지 않도록 트리밍 로직을 거쳐주는 것이 안전합니다.
가격 보기카톡 무료 상담