디지털 논리회로 2. ## 디지털 코드

BCD코드 Binary coded decimal

앞에서 봤듯이 16진수는 2진수로 변환이 아주 쉽다. 그리고 2진수를 통해서 8진수로도 쉽게 변환시킬 수 있다. 그래서 10진수를 2진수로 쉽게 변환시킬 수 있도록 만들어진 것이 BCD 코드이다.


















10진수 2 5 6
2진수 0001 0000 0000
BCD 0010 0101 0110
BCD코드의 덧셈

























































11
0001 0001
5

0101

56
0101 0110

+12
0001 0010
+6

0110

+75
0111 0101

=
0010 0011

1011

1100 1011

자리올림이 없는 경우의
연산 결과

+

0110 (6을더함)
+
0110 0110 0110 (6을더함)

0001 0001 (BCD수로11)
0001 0010 0001 0001 10진수로131이다.
0001 0011 0001
1001 이상의 숫자에 0110을 더해준 이후부터는 10진수 연산과 같은 방법으로 연산한다. 올림수가 생기면 윗자리에 그냥 더해주면 된다.

3초과코드 excess-3 code

BCD코드의 변형된 형태로 BCD코드에 10진 3, 2진수로는 0011 을 더해준 것으로 3초과코드는 각각의 비트마다 자리값을 가지지 않는 가중치 없는 코드(unweighted code)이다.

그레이 코드 gray code

0000
0001
0010
0011
0100
0101

0011
0101
0110
0111
1000
1001






















0011
그레이코드 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

2진수에서 그레이 코드 변환 방법

→←↑↓

1→0→0→1

↓ ↓ ↓ ↓

1 1 1 0

맨 왼쪽의 숫자를 오른쪽으로 더해주면서 밑으로 내리는 과정이다.

그레이 코드에서 2진수로 변환 방법

1 1 1 0

↓/ ↓/↓/ ↓

1 0 1 1

밑으로 내리고 대각선 우측위로 올려주는 방법으로 더해나간다. 1+1 = 10 이니까 0 다시 0+1은 1

패리티 비트parit bit와 해밍 코드hamming code

데이터 비트와 함께 전송되서 비트단위 오류를 검출하는 비트

패리티 비트는 홀수와 짝수로 전송된 데이터의 오류를 검사한다.

홀수 패리티의 경우 : 데이터를 전송할때 전체 데이터 비트의 합이 짝수이면, 패리티 비트를 1로 설정함으로써 전송되는 모든 비트의 합계가 홀수가 되도록 한다. 만약 데이터 비트의 합이 이미 홀수라면 패리티 비트는 0으로 설정된다.

짝수 패리티의 경우에는 위와 같은 방법으로 모든 비트의 합이 짝수가 되게 하면 된다.

0 10101100

1 10101100

해밍 코드hamming code

R.W.Hamming이 고안한 코드로서 4개의 순수한 정보 비트에 3개의 체크 비트를 추가하여 총 7비트를 만들어서 전송하는 것이다.

hamming code의 표현형식과 오류 검출 방법

1 2 3 4 5 6 7

P1 P2 D1 P3 D2 D3 D4

P1 => 1,3,5,6행에 대해서 짝수 패리티 = C1

P2 => 2,3,6,7행에 대해서 짝수 패리티 = C2

P3 => 4,5,6,7행에 대해서 짝수 패리티 = C3

가 되도록 각각 비트를 끼워넣는다.

C3C2C1순으로 배열하면 C3C2C1 이 오류가 발생한 위치가 된다.

C3C2C1=000 이 나온다면 오류가 없다는 뜻이다.

연습 문제)

1. 2진수 0011에 대한 해밍 코드를 구해보시오.

2. 수신된 데이터가 짝수패리티를 갖는 7비트 데이터인 1000010인 경우 오류의 발생 위치를 찾아내시오.

그 이외의 2진문자 코드

- 0~9숫자와 a~z까지의 영문자 +-등의 특수문자를 코드화한 것을 2진문자 코드 또는 영숫자 코드alphanumeric code라 한다.

- 4비트 BCD코드에 2비트를 추가한 표준BCD코드 standard BCD code

- 미국 표준협회American Standard Association에서 패리티 비트를 포함하여 8비트로 제정한 코드인 ASCII American Standard Code for Information Interchange

- BCD코드에 4비트를 추가한 EBCDIC Extended Binary coded Decimal Interchange Code가 있다.

한글코드

2바이트 완성형 코드

현재 표현가능한 한자 11172자 중 자주 사용하는 한글 2000~3000자 정도를 선정하고, 순서대로 코드값을 부여하여 코드를 구성한다. 또 , 8비트 완성형 코드는 영문과 구별하기 위하여 아스키 코드 128이상의 영역에 한글을 배당한다.

1987년 정부에서 표준으로 정한 KSC5601도 2바이트 완성형 코드로 되어 있다 KS완성형 코드는 각 바이트의 ASCII 161~254까지의 영역을 사용하여 모두 8836자를 표현할 수 있는데, 이 중 사용 빈도에 따라 한글 2350자, 한문 4888자, 특수 문자 1128자를 넣어 사용하고, 나머지 470자는 사용자 정의 영역과 확장 영역으로 비워두고 있다.

2바이트 조합형 코드

첫째 비트가 0이면 2바이트가 영문자를 표현

1이면 한글을 표현 초성 중성 종성으로 각가 5비트씩

유니코드

영어는 1바이트로 표현

동양3국의 언어는 2바이트로 표현




0011




0011




0011




0011

















0001
3초과코드 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 0011




0001




0001




0001




0001



















































10진수
0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
2진수 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
BCD코드 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available

22 − 14 =