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
가끔 급하게 문제를 풀거나 오랜만에 접하다 보면 헷갈릴 수가 있는데 유의하길 바란다.
'Computer Science' 카테고리의 다른 글
[Programming] 2의 보수 계산하는 방법, Two's Complement (0) | 2021.06.11 |
---|---|
[Programming] Fundamental Law of Boolean Algebra (0) | 2021.05.10 |
[Programming] IoT(사물 인터넷)과 4차 산업 기술 간의 연관성 (0) | 2021.02.28 |
[Programming] Gray code (0) | 2021.02.22 |
[Programming] Fundamental law of Boolean algebra (0) | 2021.02.22 |
댓글