본문 바로가기

디지털 회로 개론

1-3강 - Digital systems and number systems 3 (BCD, Gray code, Hamming code)

5. Binary Coded Decimal

1) Binary Coded Decimal

BCD : 8, 4, 2, 1 code (BCD를 일반적으로 8,4,2,1 code라고 부른다.)

- 10진수를 2진수로 표현한 것 (옛날 컴퓨터에서 10진수를 편하게 입출력하기 위해 사용)

- 8, 4, 2, 1은 weight을 의미한다.

- 즉, BCD code는 weighted code이다.

- decimal digits(0~9) 각각을 weight을 기반으로한 binary number로 표현한다.

2) BCD addition

BCD의 특성상 해당 bit(4-bit)가 9를 넘지 않아야하는데 넘는 경우에는 10을 빼주면 된다.

하지만 10을 그냥 뺄수는 없으니 modulo 16이라고 생각하고 6을 더한다.

여기도 8 + 5를 하면 10을 넘는다.

그래서 바로 6을 더하면 앞자리 수에 1, 뒷자리 수에 3을 표현해서 13이 표현된다.

 

3) Excess 3 code

1> 정의 : BCD의 각 자리에 3(0011)을 더한 값이다.

2> bit를 반전시킬 경우 9의 보수값이 나오는 성질이 있다. (1을 반전하면 9가 나온다.)

(8,4,-2,-1 code도 이런 성질이 있다.)

4) 주의 : conversion과 coding을 구분하자

(BCD는 coding이다. 그리고 code는 약속이다.)

conversion : decimal ↔ binary

coding : decimal ↔ BCD

 

6. Gray Code

data가 1-bit만 변화하는 data code의 형태

consecutive number(바로 옆의 숫자와는)는 1-bit만 차이가 난다.

bit 중 1개가 오류가 나더라도 그 오차가 크지 않습니다.

 

7. Hamming Code

cf> background

error dection code : data가 올바르게 도착했는지 판단하는 code

single error correction code : 위에서 error가 있었다면 이를 수정해주는 code

1) Hamming Code

4개의 data bit(a_3, a_5, a_6, a_7)이 있다면 이를 검증하는 3개의 check bit(a_1, a_2, a_4)가 있다.

XOR 연산을 통해 check하고 있다.

 

2) Hamming code table

3) Hamming code example

(이해 어렵다 ㅜㅜ)

e1, e2, e4를 기반으로 확인하면 된다.

1> check bit error

2> data bit error