3 장디지털코드. BC 코드와 3초과코드 2. 다양한 2진코드들 3. 그레이코드 4. 에러검출코드 5. 영숫자코드
BC COE q 숫자, 글자, 단어등이어떤특별한기호 (symbol) 들로표현되어질때, 이를부호화 (encode) 라하고그기호들을코드 (code) 라한다. q BC (Binary Coded ecimal) 코드 (2 진화 진코드, 842 코드 ) - 진수의각자리를등가인 2 진수로표현 - 9 가가장큰수이고이를표현하기위해서 4 비트가필요 w 9 의이진코드는 w 금지된 BC 코드 :,,,,, 예 ) 953 을 BC 코드로변환하기 9 5 3 진수 6 4. 3 BC. - 69 를 2 진수와 BC 로변환 69 2 진수 (8 비트사용 ) 69 BC (2 비트사용 ) - BC 는사용하지않는 6 개의코드로인하여이진수보다비트사용이비효율적 - BC 장점 : 진수의변환이쉽고인간에게친숙한개념을전달 2
q BC 코드표기예 진수 BC 코드 진수 BC 코드 진수 BC 코드 2 3 2 2 42 3 3 53 4 4 64 5 5 75 6 6 86 7 7 97 8 8 96 9 9 237 3
q BC 코드의연산. 2 진수의덧셈의규칙에따라두수를더한다. 2. 연산결과 4 비트의값이 9 이하이면그대로사용 3. 연산결과 4 비트의값이 9 보다크면결과값에 6() 을더하고캐리는윗자리에서더한다. v 진덧셈 (6+39) (42+2769) + v 계산결과가 BC 코드를벗어나는즉, 9 를초과하는경우에는계산결과에 6() 을더해준다. 진수 BC 코드 9 + 28 47 캐리올림 + + 진수 BC 코드 37 + 25 62 + + 캐리올림 4
3 초과 (Excess-3 ) 코드 q 3 초과코드 v BC 코드 (842 코드 ) 로표현된값에 3 을더해준값으로나타내는코드 진값 각 2 진수 + (3) v 자기보수 (self complementary) 의성질이있음 진수 BC 코드 3- 초과코드 +3() 2 3 4 5 6 7 8 9 보수관계 5
q EX-3 코드의덧셈 Ex-3 코드의연산. 2 진수의덧셈의규칙을이용하여 Ex-3 수를더함. 2. 연산결과 4 비트집합에자리올림수가없으면 3() 을뺀다. 3. 연산결과 4 비트집합에자리올림수가있으면그후에 3() 을더하고, 자리올림에의해새로생긴열에도 3() 을더한다. 진수 3-초과코드 5 + 2 + 27 - - 진수 3-초과코드 8 + 9 + 7 + + 6
Section 2 다양한 진코드들 q 가중치코드 (weighted code) v 그위치에따라정해진값을갖는코드 진수 842 코드 (BC) 242 코드 542 코드 84-2- 코드 5 코드 바이퀴너리코드 (Biquinary Code) 5432 링카운터 (ring counter) 98765432 2 3 4 5 6 7 8 9 7
q 비가중치코드 (non-weighted code) US post OSTNET code v 각각의위치에해당하는값이없는코드 v 데이터변환과같은특수한용도로사용되기위한코드 (2-out-of-5) 진수 3- 초과코드 2-out-of-5 (742) shift counter 그레이코드 2 3 4 5 6 7 8 9 Ø self aligned 코드 : EX-3, 84-2-, 242, 5 8
q 그레이코드 (Gray Code) v 가중치가없는코드이기때문에연산에는부적당하지만, 아날로그 - 디지털변환기나입출력장치코드로주로쓰인다. v 연속되는코드들간에하나의비트만변화하여새로운코드가된다. 진수 2 진코드 Gray 코드 진수 2 진코드 Gray 코드 8 9 2 이웃하는코드간에한비트만다르다. 3 4 2 5 3 6 4 7 5 9
q 2 진코드를그레이코드로변환하는방법. 2 진수의첫번째 ( 가장왼쪽 ) 비트는그레이코드의첫번째비트 2. 왼쪽에서부터오른쪽으로이웃한두개의 2 진비트를 Exclusive OR (XOR) 연산을하면그레이코드 q 그레이코드를 2 진코드로변환하는방법
q 그레이코드입력장치적용예 2 진코드 : 정상그레이코드 : 정상 그레이코드는오차가적다 2 진코드 : 에러 (3->7) 그레이코드 : 에러 (3->4)
Section 4 에러검출코드. 패리티비트 v 짝수패리티 (even parity) : 데이터에서 의개수를짝수개로맞춤 v 홀수패리티 (odd parity) : 의개수를홀수개로맞춤 v 패리티비트는데이터전송과정에서에러검사를위한추가비트. 패리티는단지에러검출만가능하며, 여러비트에에러가발생할경우에는검출이안될수도있음. q 7 비트 ASCII 코드에패리티비트를추가한코드 데이터 짝수패리티 홀수패리티 A B C 2
q 병렬패리티 (parallel parity) v 패리티를블록데이터에적용해서가로와세로데이터들에대해서패리티를적용하면에러를검출하여그위치를찾아정정할수있다. 원래데이터블록 에러가발생한블록 가로세로모두 의개수가짝수임 가로세로회색부분에 의개수가홀수임 : 겹치는부분에러 3
q 데이터전송시스템에서패리티비트를사용한에러검출 v 에러를검출하기위하여송신측에패리티발생기를구성하고수신측에는패리티검출기를구성하여그출력을보고에러발생여부를판단 v 짝수패리티 : Y( 에러없음 ), Y( 에러발생 ) v 홀수패리티 : Y( 에러없음 ), Y( 에러발생 ) 4
2. 오류정정코드 : 해밍 (hamming code) 코드 v 오류 ( 에러 ) 를정정할수있는코드 v 추가적으로많은비트가필요하므로많은양의데이터전달이필요 v 추가되는패리티비트의수 p 2 ³ d + p + p 는패리티비트의수, d 는데이터비트의수 v 해밍코드에서는짝수패리티를사용 비트위치 2 3 4 5 6 7 8 9 2 기호 2 3 4 5 6 7 8 9 2 영역 2 영역 4 영역 8 영역 5
6 q 8 비트데이터의에러정정코드 for example 2 9 8 2 7 6 5 4 7 6 3 2 9 7 5 3 3 5 6 7 9 2 2 9 8 2 7 6 5 4 7 6 3 2 9 7 5 3
q 해밍코드에서패리티비트생성과정 비트위치 2 3 4 5 6 7 8 9 2 기호 2 3 4 5 6 7 8 9 2 원본데이터 영역 2 영역 4 영역 8 영역 생성된코드 생성된패리티 7
8 q 해밍코드에서패리티비트검사과정전송된데이터 : F 패리티들을포함하여검사 v 검사된패리티를 8 4 2 순서대로정렬한다. v 모든패리티가 이면에러가없고, 그렇지않으면에러가발생한것이다. v 결과가 이므로에러가있으며, 이것을 진수로바꾸면 5 가된다. 즉, 수신된데이터 에서앞에서 5 번째비트 이에러가발생한것이므로 으로바꾸어주면에러가정정된다. 2 3 4 5 6 7 8 9 2 2 9 8 8 2 7 6 5 4 4 7 6 3 2 2 9 7 5 3
q 해밍코드에서에러가발생한경우교정 비트위치 2 3 4 5 6 7 8 9 2 기호 2 3 4 5 6 7 8 9 2 Error해밍코드 계산 2 계산 4 계산 8 계산 8 4 2 5 : 5번비트에에러가발생. 으로교정 예 : 에대한짝수해밍코드를구하라. (d4) p 3 (8 > 4+3+) h h2 h3 h4 h5 h6 h7 ß 해밍코드 p p2 p3 2 3 4 p p2 p3 p :3,5,7 에서 의개수가짝수 p p2 :3,6,7 에서 의개수가홀수 p p3 :5,6,7 에서 의개수가짝수 p è 각패리티비트계산위치 2 p p 4 p 3 p 2 p 2 3 4 5 6 7 8 9 2 3 4 5 9
Section 5 영숫자코드. ASCII (American Standard Code for Information Interchange) 코드 v 미국국립표준연구소 (ANSI) 가제정한정보교환용미국표준코드 v 28가지의문자표현가능 q ASCII 코드의구성 arity Zone bit igit Bit 7 6 5 4 3 2 영문자 A~O(~) C 영문자 ~Z(~) 숫자 ~9(~) 2
q 표준 ASCII 코드표 2 3 4 5 6 7 8 9 A B C E F NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI LE C C2 C3 C4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2! " # $ % & ' ( ) * +, -. / 3 2 3 4 5 6 7 8 9 : ; >? 4 @ A B C E F G H I J K L M N O 5 Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k ㅣ m n o 7 p q r s t u v w x y z { } ~ 2
2. 표준 BC 코드 v 6 비트로하나의문자표현 v 최대 64 문자까지표현가능한코드 arity Zone bit igit Bit 6 5 4 3 2 영문자 A~I(~) 영문자 J~R(~) C 영문자 S~Z(~) 숫자 ~9(~) 혼용 특수문자및기타문자 코드의구성 22
q 표준 BC 코드표 문자 C ZZ842 문자 C ZZ842 문자 C ZZ842 문자 C ZZ842 문자 C ZZ842 A B C E F G H I J K L M N O Q R S T U V W X Y Z 2 3 4 5 6 7 8 9 > +, ) %? - @ $ 23
3. EBCIC(Extended Binary Coded ecimal Interchange Code) 코드 v 대형컴퓨터와 IBM 계열컴퓨터에서많이사용되고있는 8 비트코드 (IBM 에서개발 ) v 256 종류의문자코드를표현할수있는영숫자코드 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 패리티 존 (zone) 디지트 (digit) 4 4 b 8 b 7 b 6 b 5 통신제어문자 특수문자 a ~i 소문자 j~r s~z A~I 대문자 / 숫자 J~R S~Z ~9 코드의구성 24
q EBCIC 코드표 6진 2 3 4 5 6 7 8 9 A B C E F 2진 NUL SOH STX ETX HT EL VT FF CR SO SI LE BS CAN EM IFS IGS IRS IUS 2 LF ETB ESC ENQ ACK BEL 3 SYN EOT NAK SUB 4 space [. ( + 5 &! $ * ) ^ 6 - /, % _ >? 7 ` : # @ " 8 a b c d e f g h i 9 j k l m n o p q r A ~ s t u v w x y z B C { A B C E F G H I } J K L M N O Q R E \ S T U V W X Y Z F 2 3 4 5 6 7 8 9 25
4. 유니코드 (Unicode) v UTF(Unicode Transformation Formats) v ASCII 코드의한계성을극복하기위하여개발된인터넷시대의표준 v 유니코드컨소시엄 (IBM, Novell, Microsoft, EC, Apple 등 ) 에의해서 32(UTF- 32), 6(UTF-6), 8bit(UTF-8) 의세가지기본코드로현재버전 6.2.(22. 9) 까지개발 v 미국, 유럽, 동아시아, 아프리카, 아시아태평양지역등의주요언어들에적용될수있다. v 유니코드는유럽, 중동, 아시아등거의대부분의문자를포함하고있으며, 만개이상의문자로구성되어있다. v 특히아시아의중국, 일본, 한국, 타이완, 베트남, 싱가포르에서사용하는표의문자 ( 한자 ) 7,27 개를나타낼수있다. v 구두표시, 수학기호, 전문기호, 기하학적모양, 딩벳기호등을포함 v 앞으로도계속해서산업계의요구나새로운문자들을추가하여나갈것이다. 26
5. 한글코드 v 한글은 ASCII 코드를기반으로 6 비트를사용하여하나의문자를표현 v 조합형과완성형으로분류 q 조합형 v 조합형으로표현된한글은때에따라서다른응용프로그램에서는사용할수없는문자들이많다. v 조합형은자음과모음으로조합가능한모든한글을사용할수있으며, 심지어우리나라고어 ( 古語 ) 까지취급할수있는장점이있으나, 출력시다시모아써야하는단점이있다. 두번째바이트 첫번째바이트 초성중성종성 q 완성형 v 완성형한글코드는 987 년정부가한국표준으로정한것으로가장많이사용되는한글음절을 2 바이트의 2 진수와 대 로대응하여표현하는방법 27