십진수에 대한 이진 코드는 최소 4비트를 필요로 한다.
십진수의 각 자리수는 0~9 중 하나로 표현되는데, 최대 숫자인 9( =1001 )는 4비트를 필요로 하기 때문이다.
십진수를 이진 코드로 나타내는 방법은 다양하다.
그 중 BCD(8421), 2421, Excess-3, Excess-3 gray 에 대해 소개하겠다.
10진수 | BCD 8421 |
2421 | Excess-3 (=BCD+0011) |
Excess-3 gray |
0 | 0000 | 0000 | 0011 | 0010 |
1 | 0001 | 0001 | 0100 | 0110 |
2 | 0010 | 0010 | 0101 | 0111 |
3 | 0011 | 0011 | 0110 | 0101 |
4 | 0100 | 0100 | 0111 | 0100 |
5 | 0101 | 1011 | 1000 | 1100 |
6 | 0110 | 1100 | 1001 | 1101 |
7 | 0111 | 1101 | 1010 | 1111 |
8 | 1000 | 1110 | 1011 | 1110 |
9 | 1001 | 1111 | 1100 | 1010 |
우선 BCD 표기법은 우리가 흔히 아는 이진수 표기법이다.
각 자리의 가중치가 8, 4, 2, 1이 되므로 8421 코드라고도 불린다.
마찬가지로, 2421 코드는 각 자리의 가중치가 2, 4, 2, 1인 코드이다.
십진수 7을 2421 코드로 표현하면 2x1+4x1+2x0+1x1 = 7 이다.
Excess-3 코드는 BCD 코드에 0011을 더한 코드이다.
Excess-3 gray 코드에서는 1비트만이 변한다.
2진수를 gray code로 변환하는 방법은 다음과 같다.
최상위 비트는 그대로 쓰고,
이전 자리 수 비트와 현재 자리 수 비트와 비교해 같으면 0, 다르면 1을 쓴다. (XOR 연산)
그레이 코드를 이진 코드로 변환하는 경우,
마찬가지로 최상위 비트는 그대로 쓰고,
2진코드로 변환한 비트와 그레이 코드의 다음비트와 비교했을 때 같으면 0, 다르면 1을 쓴다. (XOR 연산)
마찬가지로, Excess-3 코드인 0011을 gray code로 변환하면
0 0 1 1
0 0 1 0 이다.