BCD 코드와 3초과 코드기타2022. 12. 24. 15:25
Table of Contents
BCD코드
BCD코드(Binary Coded Decimal Code)란?
- BCD코드는 10진수 0(0000)부터 9(1001)까지를 2진화한 코드
- 표기는 2진수이지만 의미는 10진수
- 1010부터 1111까지 6개는 사용하지 않음
1~9의 수는 각 2진화 코드를 쓰고, 10이상의 수는 각 자릿수를 1~9의 이진 코드로 표현함
예) 10진수 15를 BCD 코드로 나타내면 0001 0101 -> 1(0001) 5(0101)
BCD코드의 연산
계산 결과가 BCD코드를 벗어날 때, 즉, 9(1001)를 초과하는 경우 계산 결과에 6(0110)을 더해준다.
EX) 69 + 85를 BCD로 바꾸어 연산한 결과는?
10의 자리와 1의 자리 모두가 9를 초과하므로 계산 결과에 0110 0110을 더해주면 된다.
3초과 코드
- BCD코드로 표현된 값에 3을 더해 준 값으로 나타내는 코드
- 자기 보수의 성질을 갖는다.
10진수 | BCD 코드 | 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 |
EX) 10진수 13을 3초과 코드로 변환해라
10의 자리 0001 -> 3초과 코드 0100
1의 자리 0011 -> 3초과 코드 0110
따라서 13의 3초과 코드는 0100 0110
자기 보수 코드(Self Complementary Code)
스스로 보수를 만드는 코드란 뜻이다
위의 표에서 3초과 코드의 각 자리의 0을 1로, 1을 0으로 바꿔보자(1의 보수를 취해보자)
10진수 0의 3초과 코드 0과 1을 뒤집어보면 1100이고, 이는 3초과 코드의 9이다.
10진수 1의 3초과 코드 0과 1을 뒤집어보면 1011이고, 이는 3초과 코드의 8이다
이렇게 계속해서 마지막인 10진수 4의 3초과 코드 0과 1을 뒤집어 보면
0111은 3초과 코드의 5이다.
즉, 합이 9가 되는 수끼리 서로 1의 보수관계를 갖는 코드가 자기 보수 코드이다.
이 때문에 오류를 검출할 수 있는 능력이 생긴다.
자기 보수 코드는 3초과 코드, 8421 코드, 2421 코드, 51111 코드 등이 있다.
'기타' 카테고리의 다른 글
카멜 케이스, 파스칼 케이스, 스네이크 케이스 (0) | 2023.07.03 |
---|---|
향상된 for문 (0) | 2023.02.13 |
순서도(Flowchart) (0) | 2023.01.16 |
진수, 진법 변환, 보수 (0) | 2022.11.29 |
벤포드의 법칙(with 파이썬) (1) | 2022.11.23 |