%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

BCD(2진화 10진수) 변환기

입력하면 바로 계산됩니다.

입력값

BCD 변환 쉽게 이해하기 — 개념과 원리

2진화 10진수(BCD)는 수 전체를 2진수로 바꾸지 않고 10진수의 각 자리를 4비트씩 따로 저장하는 방식입니다. 공간은 조금 더 들지만 나눗셈 없이 자릿수를 바로 표시할 수 있고, 10진 금액을 오차 없이 나타냅니다. 7세그먼트 표시 장치 구동 회로, 여러 실시간 시계 칩, 일부 금융·메인프레임 데이터 형식, 디지털 논리 교과 과정에서 만날 수 있습니다. 이 도구는 10진수를 8421 BCD와 3초과 코드로 바꾸어 줍니다.

2026의 BCD와 3초과 코드숫자 2, 0, 2, 6은 BCD로 0010 0000 0010 0110, 3을 더한 5, 3, 5, 9는 3초과 코드로 0101 0011 0101 1001입니다.10진수 한 자리마다 4비트씩200102+3=50101000000+3=30011200102+3=50101601106+3=91001BCD 84213초과 코드: 먼저 3을 더함BCD0010 0000 0010 01103초과0101 0011 0101 1001
BCD는 2026을 하나의 2진수가 아니라 자리별로 저장합니다.

계산 방법

원리

4비트는 16가지 패턴을 담지만 10진 숫자는 10개뿐이므로, BCD는 0000~1001만 쓰고 1010~1111은 비워 둡니다. 한 니블이 한 자리이므로 두 자리를 한 바이트에 넣은 팩 BCD는 16진수로 읽어도 10진수와 똑같이 보입니다. 시계 레지스터의 0x59가 59초를 뜻하는 이유입니다. 3초과 코드는 자기 보수 성질이 있어 모든 비트를 뒤집으면 (9 − 그 숫자)의 코드가 되므로, 초기 10진 계산기에서 뺄셈을 쉽게 해 주었습니다. BCD끼리 더해 한 자리가 9를 넘으면 비어 있는 여섯 패턴을 건너뛰도록 6을 더해 보정합니다.

예제 풀이

  1. 입력 2026의 각 자리는 2, 0, 2, 6입니다.
  2. BCD는 2 = 0010, 0 = 0000, 2 = 0010, 6 = 0110으로 0010 0000 0010 0110입니다.
  3. 3초과 코드는 각 자리에 3을 더해 5, 3, 5, 9를 얻습니다.
  4. 이를 4비트로 쓰면 0101 0011 0101 1001입니다.
  5. 마지막 자리 1001을 모두 뒤집으면 0110 = 3 + 3이 되어, 9 − 6 = 3의 코드와 일치합니다.

결과 해석

출력은 왼쪽부터 4비트씩 끊어 읽으며, 한 묶음이 10진수 한 자리입니다. 바이트로 묶으면 2026은 0x20 0x26입니다. 2026을 그냥 2진수로 쓰면 11111101010, 11비트면 되지만 BCD는 16비트가 필요합니다. 일반적으로 2진수는 한 자리에 약 3.32비트(log₂ 10)면 되므로, BCD는 10진 처리가 쉬운 대신 저장 공간을 20%쯤 더 씁니다.

흔한 실수

주의: 음수와 소수는 팩 10진수의 부호 니블이나 고정 소수점 위치처럼 시스템마다 다른 약속이 필요합니다. 사용하는 장치나 파일 형식의 규격을 확인하십시오.

자주 묻는 질문

시계 칩은 왜 BCD를 씁니까?

2진수 변환 없이 자리마다 바로 표시 장치로 보낼 수 있기 때문입니다.

BCD는 16진수와 같습니까?

같지 않습니다. 다만 각 니블에 0~9만 쓰이므로 팩 BCD 바이트를 16진수로 쓰면 10진수처럼 보입니다.

0의 3초과 코드는 무엇입니까?

0 + 3 = 3이므로 0011입니다.

출처: M. Morris Mano and Michael D. Ciletti, Digital Design, Pearson

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →