Download presentation
Presentation is loading. Please wait.
Published by서원 신 Modified 8년 전
1
Chapter 03. 디지털 코드
2
다양한 디지털 코드를 구분하여 이해할 수 있다. 문자와 숫자를 나타내는 코드를 이해할 수 있다. 가중치 코드와 비가중치 코드를 이해하고 이를 활용할 수 있다. 에러 검출 코드를 이해하고 이를 활용할 수 있다. 01. BCD 코드와 3 초과 코드 02. 다양한 2 진 코드들 03. 그레이 코드 04. 에러 검출 코드 05. 영숫자 코드
3
01 BCD 코드와 3 초과 코드 BCD 코드 (Binary Coded Decimal Code : 2 진화 10 진 코드, 8421 코드 ) BCD 코드는 10 진수 0(0000) 부터 9(1001) 까지를 2 진화한 코드 표기는 2 진수이지만 의미는 10 진수 1010 부터 1111 까지 6 개는 사용하지 않음
4
01 BCD 코드와 3 초과 코드 BCD 코드의 연산 계산 결과가 BCD 코드를 벗어나는 즉, 9(1001) 를 초과하는 경우에는 계산 결과에 6(0110) 을 더해준다. 10 진 덧셈 (6+3=9)10 진 덧셈 (42+27=69) (8+7=15) 6
5
01 BCD 코드와 3 초과 코드 3 초과 코드 BCD 코드 (8421 코드 ) 로 표현된 값에 3 을 더해 준 값으로 나타내는 코드 자기 보수의 성질
6
02 다양한 2 진 코드들 가중치 코드 (Weighted Code) 그 위치에 따라 정해진 값을 갖는 코드
7
02 다양한 2 진 코드들 8421 코드 (BCD 코드 ) 자기보수 성질 없음
8
02 다양한 2 진 코드들 2421 코드 자기보수 성질을 가짐
9
02 다양한 2 진 코드들 5421 코드 자기보수 성질 없음
10
02 다양한 2 진 코드들 84-2-1 코드 자기보수 성질을 가짐
11
02 다양한 2 진 코드들 비가중치코드 (non-weighted code) 각각의 위치에 해당하는 값이 없는 코드 데이터 변환과 같은 특수한 용도로 사용되기 위한 코드 ( 2-out-of-5 )
12
03 그레이 코드 그레이 코드 (Gray Code) 가중치가 없는 코드이기 때문에 연산에는 부적당하지만, 아날로그 - 디지털 변환기나 입출력 장치 코드로 주로 쓰인다. 연속되는 코드들 간에 하나의 비트만 변화하여 새로운 코드가 된다. 10 진 수 2진 코드2진 코드 그레이 코 드 10 진수 2 진 코드 그레이 코 드 0 0000 8 10001100 1 0001 9 10011101 2 00100011 10 10101111 3 00110010 11 101111101110 4 01000110 12 110010101010 5 01010111 13 11011011 6 01100101 14 11101001 7 01110100 15 11111000 이웃하는 코드간에 한 비트만 다르다.
13
03 그레이 코드 2 진 코드를 그레이 코드로 변환하는 방법 그레이 코드를 2 진 코드로 변환하는 방법 입력출력 A BF 0 0 0 11 1 01 1 0
14
03 그레이 코드 그레이 코드 입력장치 적용 예 2진코드2진코드 그레이코드그레이코드 그레이 코드는 오차가 적음 0 1 0011 0111 00100110 정상 (3) 에러 (3→7) 정상 (3) 에러 (3→4)
15
04 에러 검출 코드 1. 패리티 비트 짝수패리티 (even parity) : 데이터에서 1 의 개수를 짝수 개로 맞춤 홀수패리티 (odd parity) : 1 의 개수를 홀수 개로 맞춤 패리티 비트는 데이터 전송과정에서 에러 검사를 위한 추가 비트 패리티는 단지 에러 검출만 가능하며, 여러 비트에 에러가 발생할 경우에는 검출 이 안될 수도 있음 7 비트 ASCII 코드에 패리티 비트를 추가한 코드
16
04 에러 검출 코드 병렬 패리티 (parallel parity) 패리티를 블록 데이터에 적용해서 가로와 세로 데이터들에 대해서 패리티를 적 용하면 에러를 검출하여 그 위치를 찾아 정정할 수 있다. 10101111 0 10000011 1 01000000 1 11110000 0 10111001 1 00000111 1 11111111 0 01111000 0 10100101 0 101011110 100000111 010000001 111100000 101100011 000001111 111111110 011110000 101001010 원래 데이터 블록 에러가 발생한 블록 가로세로 모두 1 의 개수가 짝수임 가로세로 회색 부분에 1 의 개수가 홀수임 : 겹치는 부분 에러
17
04 에러 검출 코드 데이터 전송 시스템에서 패리티 비트를 사용한 에러 검출 에러를 검출하기 위하여 송신측에 패리티 발생기를 구성하고 수신측에는 패리 티 검출기를 구성하여 그 출력을 보고 에러 발생 여부를 판단 짝수 패리티 Y=0( 에러 없음 ), Y=1( 에러 발생 ) 홀수 패리티 Y=1( 에러 없음 ), Y=0( 에러 발생 )
18
04 에러 검출 코드 2. 에러 정정 코드 : 해밍코드 (Hamming Code) 에러를 정정할 수 있는 코드 추가적으로 많은 비트가 필요하므로 많은 양의 데이터 전달이 필요 데이터 비트와 패리티 비트와의 관계 p=4 일 때, 2 4-1 – 4 + 1 ≤ d ≤2 4 – 4 – 1 이므로 5 ≤ d ≤ 11 이다. 따라서 데이터 비트수가 5 개 이상 11 개 이하일 때 패리티는 4 개가 필요하다. 패리티 비트의 위치는 앞에서 부터 2 0, 2 1, 2 2, 2 3, 2 4, … 번째, 즉 1, 2, 4, 8, 16, … 번 째이다. 데이터 비트는 나머지 위치에 순서대로 들어간다. p 는 패리티 비트의 수, d 는 데이터 비트의 수,
19
04 에러 검출 코드 해밍코드에서는 짝수 패리티를 사용 비트 위치 123456789101112 기호 P1P1 P2P2 D3D3 P4P4 D5D5 D6D6 D7D7 P8P8 D9D9 D 10 D 11 D 12 P 1 영역 P 2 영역 P 4 영역 P 8 영역
20
04 에러 검출 코드 8 비트 데이터의 에러 정정 코드 For Example P1P1 P2P2 D3D3 P4P4 D5D5 D6D6 D7D7 P8P8 D9D9 D 10 D 11 D 12 00101110
21
04 에러 검출 코드 해밍코드에서 패리티 비트 생성 과정 비트위치 123456789101112 기호 P1P1 P2P2 D3D3 P4P4 D5D5 D6D6 D7D7 P8P8 D9D9 D 10 D 11 D 12 원본 데이터 00101110 P 1 영역 000011 P 2 영역 101011 P 4 영역 10100 P 8 영역 11110 생성된 코드 010101011110 생성된 패리티
22
04 에러 검출 코드 해밍코드에서 패리티 비트 검사 과정 전송된 데이터 : 010111011110 패리티들을 포함하여 검사 검사된 패리티를 P 8 P 4 P 2 P 1 순서대로 정렬 모든 패리티가 0 이면 에러 없음 하나라도 1 이 있으면 에러 발생 : 결과가 0101 이므로 에러 있음 0101 을 10 진수로 바꾸면 5 이며, 수신된 데이터에서 앞에서 5 번째 비트 010111011110 에 에러가 발생한 것이므로 010101011110 으로 바꾸어 주면 에러가 정정된다. P1P1 P2P2 D3D3 P4P4 D5D5 D6D6 D7D7 P8P8 D9D9 D 10 D 11 D 12 010111011110
23
04 에러 검출 코드 해밍코드에서 에러가 발생한 경우 교정 비트위치 12345678910 1112 기호 P1P1 P2P2 D3D3 P4P4 D5D5 D6D6 D7D7 P8P8 D9D9 D 10 D 11 D 12 Error 해밍코드 0101110111 10 P 1 계산 100101 1 P 2 계산 010101 1 P 4 계산 11110 0 P 8 계산 0111 10 P 8 P 4 P 2 P 1 =0101= 5 : 5 번째 비트에 에러 발생, 1 → 0 으로 교정
24
05 영숫자 코드 1. ASCII (American Standard Code for Information Interchange) 코드 미국 국립 표준 연구소 (ANSI) 가 제정한 정보 교환용 미국 표준 코드 128 가지의 문자를 표현 가능 ASCII 코드의 구성 parityzone bitdigit bit 76543210 C 100 영문자 A~O(0001~1111) 101 영문자 P~Z(0000~1010) 011 숫자 0~9(0000~1001)
25
05 영숫자 코드 표준 ASCII 코드표 0123456789ABCDEF 0 NULSOHSTXETXEOTENQACKBELBSTABLFVTFFCRSOSI 1 DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS 2 !"#$%&'()*+,-./ 3 0123456789:;=>? 4 @ABCDEFGHIJKLMNO 5 PQRSTUVWXYZ[\]^_ 6 `abcdefghijk ㅣ mno 7 pqrstuvwxyz{|}~DEL
26
05 영숫자 코드 확장 ASCII 코드표 0123456789ABCDEF 8ÇüéâäàåçêëèïîìÄÅ 9ÉæÆôöòûùÿÖÜ¢£¥Ptf AáíóúñѪº¿ 「」 ½¼¡«» B░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ C└┴┬├─┼╞╟╚╔╩╦╠═╬╧ D╨╤╥╙╘╒╓╫╪┘┌ ▮ ▄▌▐▀ EαβΓπ∑σμτΦΘΩδ∞ ∅ ε∩ F≡±≥≤⌠⌡÷≈ ◦ ∙√ⁿ² ■
27
05 영숫자 코드 2. 표준 BCD 코드 6 비트로 하나의 문자를 표현 최대 64 문자까지 표현 가능한 코드 parityzone bitdigit bit 6543210 C 11 영문자 A~I(0001~1001) 10 영문자 J~R(0001~1001) 01 영문자 S~Z(0010~1001) 00 숫자 0~9(0001~1010) 혼용특수문자 및 기타문자 코드의 구성
28
05 영숫자 코드 표준 BCD 코드표 문자 C ZZ8421 문자 C ZZ8421 문자 C ZZ8421 문자 C ZZ8421 문자 C ZZ8421 ABCDEFGHIABCDEFGHI 0 110001 0 110010 1 110011 0 110100 1 110101 1 110110 0 110111 0 111000 1 111001 JKLMNOPQRJKLMNOPQR 1 100001 1 100010 0 100011 1 100100 0 100101 0 100110 1 100111 1 101000 0 101001 STUVWXYZSTUVWXYZ 1 010010 0 010011 1 010100 0 010101 0 010110 1 010111 1 011000 0 011001 12345678901234567890 0 000001 0 000010 1 000011 0 000100 1 000101 1 000110 0 000111 0 001000 1 001001 1 001010 =>+,)%?-@$=>+,)%?-@$ 0 001011 1 001100 0 010000 1 011011 0 011100 1 011101 0 011111 1 100001 1 111010 1 111111
29
05 영숫자 코드 3. EBCDIC(Extended Binary Coded Decimal Interchange Code) 코드 대형 컴퓨터와 IBM 계열 컴퓨터에서 많이 사용되고 있는 8 비트 코드 (IBM 에서 개발 ) 256 종류의 문자 코드를 표현할 수 있는 영숫자 코드 b9b9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 패리티존 (zone) 디지트 (digit) 144 b 8 b 7 b 6 b 5 0 통신제어문자 0 1 특수문자 1 0 소문자 0 a ~i 0 1j~r 1 0s~z 1 대문자 / 숫자 0 A~I 0 1J~R 1 0S~Z 1 0~9 코드의 구성
30
05 영숫자 코드 EBCDIC 코드표 16 진 0123456789ABCDEF 2진2진 0000000100100011010001010110011110001001101010111100110111101111 00000NULSOHSTXETXHTDELVTFFCRSOSI 10001DLEBSCANEMIFSIGSIRSIUS 20010LFETBESCENQACKBEL 30011SYNEOTNAKSUB 40100space[.(+| 50101&!$*)^ 60110-/|,%_>? 70111`:#@‘=" 81000abcdefghi 91001jklmnopqr A1010~stuvwxyz B1011 C1100{ABCDEFGHI D1101}JKLMNOPQR E1110\STUVWXYZ F11110123456789
31
05 영숫자 코드 4. 유니코드 (Unicode) ASCII 코드의 한계성을 극복하기 위하여 개발된 인터넷 시대의 표준 유니코드 컨소시엄 (IBM, Novell, Microsoft, DEC, Apple 등 ) 에 의해서 32(UTF-32), 16(UTF-16), 8bit(UTF-8) 의 세 가지 기본 코드 미국, 유럽, 동아시아, 아프리카, 아시아 태평양 지역 등의 주요 언어들에 적용될 수 있다. 유니코드는 유럽, 중동, 아시아 등 거의 대부분의 문자를 포함하고 있으며, 10 만 개 이상의 문자로 구성되어 있다. 특히 아시아의 중국, 일본, 한국, 타이완, 베트남, 싱가포르에서 사용하는 표의 문 자 ( 한자 ) 70,207 개를 나타낼 수 있다. 구두표시, 수학기호, 전문기호, 기하학적 모양, 딩벳 기호 등을 포함 앞으로도 계속해서 산업계의 요구나 새로운 문자들을 추가하여 나갈 것이다.
32
05 영숫자 코드 5. 한글코드 한글은 ASCII 코드를 기반으로 16 비트를 사용하여 하나의 문자를 표현 조합형과 완성형으로 분류 조합형조합형 조합형으로 표현된 한글은 때에 따라서 다른 응용프로그램에서는 사용할 수 없는 문자들이 많다. 조합형은 자음과 모음으로 조합 가능한 모든 한글을 사용할 수 있으며, 심지어 우리나라 고어 ( 古語 ) 까지 취급할 수 있는 장점이 있으나, 출력 시 다시 모아 써야 하는 불편이 있다는 것이 단점이다. 완성형완성형 1987 년 정부가 한국표준으로 정한 것으로 가장 많이 사용되는 한글 음절을 2 바이트의 2 진수와 1 대 1 로 대응하여 표현하는 방법
Similar presentations