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