숫자 코드와 문자 코드가 컴퓨터 내부에서 어떻게 표현되는지 살펴보자.
▶ 숫자 코드
▷ BCD 코드
BCD(Binary-Coded-Decimal-code) 코드란?
- 10진수의 각 자리 숫자를 4bit(네 자리)의 이진수로 표현한 코드
- 실제 표기는 2진수지만 10진수처럼 사용한다.
- BCD 코드(=2진화 10진 코드, =8421 코드)
- BCD 코드는 각 자리값에 8,4,2,1이라는 가중치가 있기 때문에 가중치 코드이다.
BCD 코드 구현 방법
아래와 같이 하나의 값(10진수)을 4개의 2진수 bit로 나타낼 수 있다.
BCD와 2진수와의 비교
BCD 코드는 현재 잘 사용하지 않는다!
① 2진수보다 더 많은 비트들을 필요로 하여 덜 효율적이다.
② 연산 빠르지만 저장공간 커지고 복잡한 회로를 필요로한다.
▷ 3초과 코드
3초과 코드(excess 3 code)란?
- BCD 코드의 표현(8421 코드)에 2진수 0011(10진수 3)을 더해서 표현한 코드를 말한다.
- 즉,BCD를 기반으로 10진수를 +3 해주는 것
3초과 코드 구현 방법
3초과 코드 특징
① non-weighted 코드
② 보수를 간단히 얻을 수 있다.
: 보수를 구할 떄 스위칭만 하면 되기 때문
ex : 10진수의 1은 3초과 코드 0100 → 1과 0을 바꾸면 1011(10진수 8)
③ 어떠한 경우에도 2진수 전부가 0이 되지 않으므로 신호가 있는 것과 0을 구별하기 쉽다.
: 0을 나타내도 +3한 숫자를 나타내는 것이기 때문이다.
▷ 그레이 코드
그레이 코드(Gray code)란?
- 최소 변화 코드: 모든 비트들이 어느 곳에서든지 한 단계에서 다음 단계로 가는 데 있어서 비트가 1개씩 변화하는 코드를 말한다.
- non-weighted 코드이다.
그레이 코드 구현 방법
- 2진수(Binary) -> 그레이 코드 변환
① 최상위 비트 그대로 내려온다.
② 2진수의 앞 비트와 그 뒤 비트를 합하고 올림수를 없앤 것을 다음 비트로 한다.
- 그레이 코드 1101₍₂₎ -> 2진수(Binary) 변환
① 최상위 비트 그대로 내려온다.
② 2진수 첫 번째 수와 그레이 코드 두 번째 수를 더한다.
③ 마찬가지로 두 번째 수와 세 번째 수를 더한다.
④ 마지막으로 세 번째 수와 네 번째 수를 더한다. 0 + 1 = 1
=> 즉 2진수는 1001
▶ 문자 코드
컴퓨터 내부에서 사용하는 EBCDIC 코드와 컴퓨터 외부에서 사용되는 ASCII 코드에 대해 알아보자.
▷ EBCDIC 코드
- 문자 데이터(영문자, 특수문자 등 표현)의 내부 통신에 사용되는 코드
- 4개의 zone 비트와 4개의 숫자 비트로 구성된다.
- 정보 교환을 위한 코드가 아니므로 패리티 비트가 존재하지 않는다.
▷ ASCII 코드
- 7비트의 정보교환용 외부 통신에 사용되는 코드
- 3개의 zone 비트와 4개의 숫자 비트로 구성 (제어를 위해 1비트 추가)
🔖정리
📎참조
- 『 성결대학교 김자원 교수님 』 - 컴퓨터 구조 (2023)
- 『 컴퓨터구조(제5판) 』 - 복두 출판사