비가중치 코드

IT 위키
Non-weighted Code; 비가중치 코드
각 비트 자리에 고정된 자릿값(가중치)이 없는 2진 코드

가중치 코드와 비교

[편집 | 원본 편집]
구분 가중치 코드 비가중치 코드
자릿값 각 비트에 값이 정해져 있다 정해져 있지 않다
10진수 변환 가중치를 더하면 된다 변환 규칙을 따로 거쳐야 한다
BCD(8421), 2421, 5421, 51111, 바이퀴너리 3초과 코드(Excess-3), 그레이 코드, 5중 2 코드

3초과 코드

[편집 | 원본 편집]
Excess-3; XS-3
BCD(8421) 코드에 2진수 3(0011)을 더한 코드
10진수 BCD(8421) 3초과 코드
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100

왜 계산기에 쓰였나

[편집 | 원본 편집]

자기 보수(Self-complementing) 성질이 있기 때문이다.

  • 어떤 수의 3초과 코드를 비트 반전(1의 보수)하면 그대로 9의 보수가 된다
3 → 0110, 비트 반전 → 1001 = 6 (= 9 − 3)
2 → 0101, 비트 반전 → 1010 = 7 (= 9 − 2)
  • 뺄셈을 보수의 덧셈으로 처리할 때 별도의 보수 변환 회로가 필요 없다. 인버터만 붙이면 된다
  • 소형 계산기에서 BCD 대신 3초과 코드를 쓴 가장 큰 이유가 이것이다

BCD(8421)에는 이 성질이 없다. 2421 코드와 51111 코드에도 자기 보수 성질이 있지만 이들은 가중치 코드다.

그 밖의 성질

[편집 | 원본 편집]
  • 0000 과 1111 을 쓰지 않으므로 모든 비트가 0인 상태가 없다. 전송이 끊긴 것과 값 0 을 구별할 수 있다

그레이 코드

[편집 | 원본 편집]
인접한 값끼리 한 비트만 다른 코드
  • "연속된 순간에 하나의 비트만 변화한다"는 설명은 그레이 코드의 특징이다. 3초과 코드가 아니다
  • 아날로그-디지털 변환, 로터리 인코더에서 판독 오류를 줄이는 데 쓴다
  • 변환 : 2진수를 오른쪽으로 한 칸 민 값과 원래 값을 XOR

같이 보기

[편집 | 원본 편집]