본문 바로가기
Computer Science

[Porgramming] BCD 8-4-2-1 weighted code, 6-3-1-1 weighted code

by Henry Cho 2021. 5. 10.
728x90

weighted code는 Binary-coded-decimal의 한 종류이다.

BCD(Binary-coded-decimal)는 우리가 흔히 사용하는 십진법 숫자를 이진법으로 표현하지만 방식은 십진법을 따른다.

435 -> 0100 0011 0101

BCD에 대한 간단한 예시를 들자면 435라는 숫자를 BCD로 표기할 때, 0100 0011 0101라고 나타낼 수 있다.

가중치 코드라고도 불리는 weighted code는 BCD 방식을 기반으로 하여 하나의 조건이 추가 된다.

이해하면 어렵지 않으니 한번 살펴보자.

 

8-4-2-1 weighted code(BCD)

8-4-2-1 weighted code는 숫자에 의미가 담겨 있다.

BCD에서 십진법을 이진법으로 표기할 때  숫자 하나를 4개의 이진법 비트로 나눠서 나타냈다.

435 -> 0100 0011 0101

435를 가지고 8-4-2-1 weighted code로 표기한다면 위와 같이 나타난다.

언뜻 봐서는 BCD랑 다를 것이 없어 보이는데 사실 그게 정답이다.

8-4-2-1 weight code는 4번째 자리 비트에는 2의 3 제곱인 8을 나타내며

세 번째 자리 비트에는 2의 제곱인 4를 나타낸다.

마찬가지로 2번째 자리 비트는 2의 1 제곱인 2를 나타내며 마지막 자리는 2의 0 제곱을 나타낸다.

한마디로 8-4-2-1 weighted code는 우리가 흔히 사용하는 이진법 BCD를 의미한다.

 

6-3-1-1 weighted code

우리가 흔히 사용하던 방식인 BCD를

굳이 8-4-2-1 weighted code로 설명한 이유는 6-3-1-1 weighted code를 쉽게 이해하기 위해서 이다.

6-3-1-1 weighted code도 8-4-2-1 weighted code와 크게 다르지 않다.

다만 첫 번째 자리 비트는 6, 두 번째 자리 비트는 3, 세 번째와 마지막 자리 비트는 1로 계산을 해주면 된다.

예시를 한번 살펴보자.

435 -> 0101 0100 0111

똑같이 435라는 숫자로 6-3-1-1 weighted code로 표기하면 위와 같이 나온다.

8-4-2-1 weighted code에 나타낸 숫자와 6-3-1-1 weighted code로 나타낸 숫자 표기가 다른 것을 알 수 있다.

6-3-1-1 weighted code를 사용하는 것은 알고 보면 어렵지 않지만 유의해야 될 사항이 있다.

8-4-2-1과 다르게 6-3-1-1은 세 번째와 마지막 자리가 둘 다 똑같은 1이다.

 

예를 들어, 4와 같이 3+1을 표기하고 싶을 때 어떤 자리 숫자를 먼저 써야 하는지이다.

6-3-1-1 weighted code를 표기할 때는 가장 마지막 자리 숫자부터 사용하고

그다음 세 번째 자리 숫자를 사용하여 표기하면 된다.

4 -> 0101

가끔 급하게 문제를 풀거나 오랜만에 접하다 보면 헷갈릴 수가 있는데 유의하길 바란다.

728x90

댓글