본문 바로가기
IT만들기/전산일반

컴퓨터에서 데이터의 표현

by 커피향처럼 2017. 6. 17.

컴퓨터에서 데이터의 표현

디지털 컴퓨터에서 는 전기적인 신호인 두 개의 값(0 또는 1)으로 표현된다. 이러한 특성으로 인간이 사용하는 정보의 체계와는 다른 다른 방법의 데이터를 처리하고 표현을 하기 위한 방법이 존재한다.

디지털 컴퓨터에서 처리하는 데이터는 산술연산을 위한 수치 데이터와 입출력과 데이터의 처리를 위한 화된 문자 데이터로 나누어 지게 되며 아래 그림과 같은 데이터 표현 방법들이 있으며 이 외에도 데이터 표현 방법들이 존재한다.

[컴퓨터에서 데이터의 표현 방법]

1. 수치 데이터의 표현

일반적으로 수는 부호, 크기, 소수점으로 표현되는데 n비트의 수를 표현하려면 부호 비트를 포함하여 (n+1)비트의 가 요구된다

1.1 고정 소수점 표현(Fixed point)

소수점의 위치가 고정한다는 것으로 소수점이 실제로 레지스터에 표시되지 않고 소수점이 가장 오른쪽 밖에 있다고 보아 레지스터의 내용을 정수(integer number)로 취급하거나 레지스터의 맨 왼쪽 밖에 소수점이 있다고 생각하여 레지스터의 내용을 분수로 취급

15

0

half word

부호(S)

크기(Magnitude)

31

0

full word

부호(S)

크기(Magnitude)

[ 고정 소수점 표현 ]

15

0

half word

부호(S)

크기(Magnitude)

31

0

full word

부호(S)

크기(Magnitude)

[ 고정 소수점 표현 ]

부호 비트 S0이면 양수(+)1이면 음수(-)를 나타낸다. 음수를 표현하는 방법은 부호와 절대값, 부호와 1의 보수, 부호와 2의 보수에 의한 표현 방식이 있다.

부호와 절대값 : 부호만 바꾸고 절대값은 그대로 사용 -9 : 1 001001

부호와 1의 보수 : 절대값으로 표현된 수를 1의 보수로 한다. -9 : 1 110110

부호와 2의 보수 : 1의 보수 방법으로 표현된 수 최하위 비트에 1을 더해 2의 보수로 바꿈

-9 : 1 110111

1.2 부동 소수점 표현(Floating point)

컴퓨터에 이용되는 소수점의 위치를 자유로 정하는 수치 표시 방법으로, 1개의 수치를 표시할 때 지수 부분과 유효 숫자 부분으로 나누어 자동적으로 자리 맞춤을 한다. 부동 소수점의 구성 요소는 수치의 부호(가수 부호), 가수(mantissa)의 절대값, 자리수의 좌우 시프트 표시(지수부의 부호), 지수의 절대값이 1조로 되어 수치를 표현하고 가수부로 유효 숫자의 절대값을 표시하며, 지수부에 의해 소수점 위치를 표시한다.

0

1 7

8

31

부호(S)

지수부분

가수부분

단정도

소수점 위치(가정)

1 7

8

63

부호(S)

지수부분

가수부분

배정도

[ 부동 소수점 표현 ]

1.3 10진수 데이터

10진수를 2진수로 변환하지 않고 10진수 상태로 표시하는 것.

(고정소수점데이터를 표현하는 방법 중 하나)

1.3.1 팩 십진수 형식(packed decimal format)

10진수 한 자리를 4개의 비트로 표현하는 방법.

맨 오른쪽 4개의 비트는 양수이면 “C" (1100), 음수이면 ”D" (1101)로 나타낸다.

) -123

숫자(digit)

숫자(digit)

숫자(digit)

부 호

0

0

0

1

0

0

1

0

0

0

1

1

1

1

0

1

1

2

3

D

1.3.2 언팩 십진수 형식(unpacked decimal format)

10진수 한 자리를 8개의 비트로 표현하는 방법

왼쪽 4비트는 존(zone), 나머지 4비트는 숫자(digit), 맨 오른쪽 4개의 비트는 양수이면 “C" (1100), 음수이면 ”D" (1101)로 나타낸다.

) +724

숫자

숫자

부호

숫자

1

1

1

1

0

1

1

1

1

1

1

1

0

0

1

0

1

1

0

0

0

1

0

0

F

7

F

2

C

4


2.1
이진 코드(binary code)(ⓓ)

2.1.1 BCD 코드 (2진화 10진수)

BCD(binary coded decimal) 코드는 컴퓨터를 처음 만들었을 때 사용하던 코드로서 10진수 한 자리를 네 자리의 2진수를 써서 표현하는 부호. 두 자리 이상의 10진수에 대하여는, 각각의 자릿수를 2진수 네 자리(4비트)BCD 코드로 표현하는데, 예컨대 1280001 0010 100012비트로 나타낸다. 전자계산기, 디지털멀티미터 등의 내부에서의 수치의 표시법이라든가, 사무계산의 분야에서 쓰인다. 컴퓨터를 대표로 하는 디지털회로에서는 주로 유한의 자릿수의 2진수를 다루기 때문에, 데이터의 입출력 때에 10진수에서 2진수로, 또는 그 역의 변환을 해야만 한다. 그런데 10진 소수를 2진 소수로 변환할 때, 유한 자릿수의 10진소수가 2진수로는 순환소수가 되어버리는 수가 있다. 그 때문에, 유한자릿수의 2진수를 다루는 컴퓨터에서는 수를 정확히 표현할 수 없게 된다든지, 10-2진 변환에 많은 시간이 필요해진다든지 하게 된다. 그것을 피할 필요가 있을 때예컨대 소수점 이하에서도 항상 정확한 값을 보장해야만 하는 사무계산의 분야라든가, 입출력 동작에 비하여 계산이 적고, 10-2진 변환의 시간이 문제가 되는 계측.표시의 분야에서는, BCD코드가 널리 이용되고 있다.

8421 코드라고도 하며 이는 4비트에 대한 가중치가 왼쪽에서부터 8, 4, 2, 1이라는 의미이며 각각의 대응되는 10진수로의 변환이 용이하다.

십진수

BCD 표시

십진수

BCD 표시

0

0000

10

0001 0000

1

0001

20

0010 0000

2

0010

30

0011 0000

3

0011

40

0100 0000

4

0100

50

0101 0000

5

0101

60

0110 0000

6

0110

763

0111 0110 0011

7

0111

789

0111 1000 1001

8

1000

1234

0001 0010 0011 0100

9

1001

56789

0101 0110 0111 1000 1001


2.1.2 Gray 코드

연속되는 수를 2진 표현하여 인접한 수들은 서로 한 자리만 다르게 만들어진 2진 코드이며 비가중치 코드이다. 연산에는 부적당하지만 A/D 변환기나 입출력 장치를 제어하는 코드로 사용되고 광학적 또는 기계적 축 위치 부호기에도 널리 이용된다. 특징은 단일 비트가 변화하여 새로운 코드가 되기 때문에 입력 코드로 사용하면 오차가 작다.

- 2진수를 그레이 코드로 변환

왼쪽 첫 번째 갑은 그대로 내려쓰고 다음부터 인접한 값끼리 XOR(Exclusive-OR) 연산을 해서 내려씀


10진수

2진수

그레이 코드

10진수

2진수

그레이 코드

0

0000

0000

7

0111

0100

1

0001

0001

8

1000

1100

2

0010

0011

9

1001

1101

3

0011

0010

10

1010

1111

4

0100

0110

11

1011

1110

5

0101

0111

12

1100

1010

6

0110

0101

13

1101

1011


2.1.3 3-초과 코드(Excess-3 code)

8421코드의 연산을 돕기 위하여 만든 것으로 8421 code3을 더해서 만든 코드이다. 3초과 코드는 비가중치 코드이고 자기 보수 코드이다.

- 10진 연산에 사용할 수 있음

) 6 : 1001

   +7 : 1010

   13 : 10011

10진수

BCD

Excess-3 코드

-

-

0000

비사용 0001

0010

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

-

-

1101

1110

1111

2.1.4 시프트 카운터 코드(shift counter code)

존슨 코드(Johnson code)라고도 하는데, 5비트의 BCD코드로서 1부터 5까지는 오른쪽으로부터 “1”이 차례로 채워지고 6부터 9까지는 오른쪽부터 “0”이 채워진다. 이것의 용도는 전자회로 제작에 용이하다.

10진수

시프트 카운터 코드

0

0 0 0 0 0

1

0 0 0 0 1

2

0 0 0 1 1

3

0 0 1 1 1

4

0 1 1 1 1

5

1 1 1 1 1

6

1 1 1 1 0

7

1 1 1 0 0

8

1 1 0 0 0

9

1 0 0 0 0

2.2 알파뉴메릭 코드(alphanumeric code)

문자와 숫자를 동시에 표현할 수 있는 코드

2.2.1 BCD code (2진화 10진 코드)

BCD code(Binary Coded Decimal code)는 하나의 문자를 자료 비트 6개와 패리티 비트 1개로 구성하여 64종류의 문자를 표시할 수 있도록 만든 기본 코드. 자료 비트 6개 중 앞의 2개는 존 비트(zone bit)이고 4개는 서열을 표시하는 디지트 비트(digit bit)이다. 존 부분은 A~I까지가 11이고, J~R까지가 10, S~Z까지가 01이며, 숫자는 00이다. 현재는 CDC 계열의 컴퓨터에서만 사용된다.

문자

BCD code

문자

BCD code

문자

BCD code

문자

BCD code

A

110001

J

100001

S

010010

1

000001

B

110010

K

100010

T

010011

2

000010

C

110011

L

100011

U

010100

3

000011

D

110100

M

100100

V

010101

4

000100

E

110101

N

100101

W

010110

5

000101

F

110110

O

100110

X

0101111

6

000110

G

110111

P

1001111

Y

011000

7

000111

H

111000

Q

101000

Z

011001

8

001000

I

111001

R

101001

9

001001

2.2.2 ASCII 코드

ASCII(American Standard Code for Information Interchange;미국 정보 교환 표준 코드)는 미국 표준 협회가 제정한 자료 처리 및 통신 시스템 상호간의 정보 교환용 죠준 코드로서, 7비트로 구성된 128종의 기호를 정한 것. 이들은 제어 부호 33, 그래픽 기호 33, 숫자 10, 알파벳 대소문자 52자로 되어 있다. 이 코드는 통신의 시작과 종료, 라인 피드 등의 제어 조작을 표시할 수 있는 코드로 데이터 통신에 널리 이용되고 있다. ASCII7자리의 2진 코드로 많은 컴퓨터에서 사용되고 있다. 또한 1비트의 패리티 비트를 추가하여 8개의 비트로 사용되는 코드도 있으며, 이 두 가지 형태를 보면 다음과 같다.

ASCII

7

6

5

4

3

2

1

ASCII-8

8

7

6

5

4

3

2

1

ASCII 코드의 비트 번호는 오른쪽에서 왼쪽으로 2부여한다. ASCII는 여러 가지로 다양하게 표현되는 코드에 따른 정보 호환성의 제한이나 불편을 덜고, 컴퓨터 대 컴퓨터, 시스템의 통신을 단순화하고 표준화하기 위해 통신 장비의 사용자들과 자료 처리 사업자들이 협력하여 만들었다.

b7

b6

b5

b4 b3 b2 b1

0

0

0

0

0

1

0

1

0

0

1

1

1

0

0

1

0

1

1

1

0

1

1

1

0 0 0 0

NUL

SP

0

@

P

p

0 0 0 1

SOH

DC1

!

1

A

Q

a

q

0 0 1 0

STY

DC2

"

2

B

R

b

r

0 0 1 1

ETX

DC3

#

3

C

S

c

s

0 1 0 0

DC4

$

4

D

T

d

t

0 1 0 1

ENQ

NAK

%

5

E

U

e

u

0 1 1 0

ACK

SYN

&

6

F

V

f

v

0 1 1 1

BEL

ETB

'

7

G

W

g

w

1 0 0 0

BS

CAN

(

8

H

X

h

x

1 0 0 1

HT

EM

)

9

I

Y

i

y

1 0 1 0

LF

SUB

*

:

J

Z

j

z

1 0 1 1

VT

ESC

+

;

K

[

k

{

1 1 0 0

FF

FS

,

<

L

\

l

|

1 1 0 1

CR

GS

-

=

M

]

m

}

1 1 1 0

SO

RS

.

>

N

^

n

~

1 1 1 1

SI

US

/

?

O

_

o

DLE

2.2.3 EBCDIC 코드

EBCDIC[엡시딕]BCD 코드를 확장한 형태로 확장현 BCD 코드라 하며 IBM이 대형 운영체계에서 사용하기 위해 개발한 알파벳 및 숫자를 위한 바이너리 코드를 말한다. EBCDICIBM S/390 서버의 운영체계인 OS/390에서 사용되는 텍스트 파일용 코드로서, 많은 회사들이 자기 회사의 오래된 응용프로그램과 데이터베이스를 위해 아직도 사용한다.

그러나 IBM PC나 워크스테이션용 운영체계에서는 텍스트 표현방법에 있어, 자신들의 고유한 체제인 EBCDIC 대신 산업계 표준코드인 ASCII를 사용한다. EBCDIC 파일 내에서 각 알파벳이나 숫자는 8 비트의 이진수로 표현되므로, 256개의 문자가 정의된다.

2.2.4 12비트 카드 코드(12bit card code)

천공 카드에 문자를 표현하기 위한 천공의 조합으로서 영문자, 숫자 또는 특수 문자를 표시할 수 있다. 천공된 부분은 1, 천공되지 않은 부분은 0으로 감지. 1280행으로 구성 12열은 위에서부터 12,11,0,1,2,...,8,9 천공으로 표시되며, 처음 3열은 존 천공(zone punch), 나머지 9열은 숫자 천공(numeric punch) 이라 칭한다. 사용되는 비트수가 많기 때문에 비효율적이므로 데이터를 입력할 때 사용한다.

2.2.5 완성형 한글 코드

2바이트 완성형 한글 코드는 정부가 1987년 한글 코드의 표준(KSC 5601-87)로서 지정한 한글 코드로서, 코드 발표 당시와 마찬가지로 여전히 논란의 대상이 되고 있는 코드이다. 우리가 사용하고 있는 한글을 보게 되면 조합할 수 있는 모든 글자수 1172자에서 실제 사용하고 있는 글자는 30% 정도라고 가정한다. 따라서 이중 많이 쓰이는 글자인 2350자를 추출하여 배열한 것이 바로 KSC 5601-87 코드이다. 따라서 완성형 한글 코드에는 초성, 중성, 종성이라는 한글 창제의 개념은 전혀 들어가 있지 않고, 다만 2350개로 표본 추출한 글자 하나 하나를 완성된 글자로 보고, 일렬로 배열한 코드에 지나지 않는다. 완성형 한글 코드는 자소의 구별이 없다. 그래서 이를 구별하거나 소트(정렬)하기 위해서는 한글 코드를 변환하기 위한 테이블을 메모리에 띄어놓고 이를 조합형 코드로 변환하여 자소를 구별하거나 소트한 후에 다시 완성형으로 돌아오는 방법을 취해야 한다.

<특징 및 단점>

정부 표준화 코드로서 보급되었다. 따라서 업계에서는 이를 채용할 수밖에 없었고 현재까지 논란의 대상이 된다. 연속된 2바이트의 상위 비트(MSB)가 모두 1로 세트된다. 따라서 한글의 구별이 용이하다. 2350자의 한글만 지원한다. 따라서 "똠방각하" "" 자의 경우 한글 입력이 불가능할 뿐만 아니라, 기타 새로 만들어지거나 혹은 고어 등에 있어서 한글 사용이 불가능하다. 행정 전산망 한글 코드로 채택되었으며, 한글 2350자 외에도 한자 4888자와 독어, 일어 등등의 외국 문자, 특수 문자 등을 포함하고 있다. 지원하지 않는 한글을 사용하기 위해 사용자 정의 영역을 두고 있다. 그러나 이 부분을 사용할 경우, 각각의 사용자에 따라 서로 다르게 정의하게 됨으로 표준 코드라는 의미를 잃게 된다.

ISO 2022 부호 확장법을 따르기 위해 만들어졌다.

2.2.7 조합형 한글 코드

KSC5601-87 (2바이트 완성형 한글 코드)이 발표되기 전까지 가장 많은 사용자를 확보하고 있었던 코드로서, 한글의 구현 원리를 가장 완벽하게 실현한 코드이다.

한글은 초성, 중성, 종성으로 만들어진 코드이다. 따라서 이를 자소라고 부르는 각각의 구별이 용이해야 함은 물론이거니와 이들 자소를 조합하여 한글을 구성할 수 있어야 진정한 한글 코드라고 할 수 있다. 2바이트 조합형 한글 코드는 바로 이런 목적하에 개발되었으며 초성, 중성, 종성을 각 5비트를 할당함으로서 이를 가능케 하고 있다. 한글을 표현하기 위해서는 11172자의 빈공간이 필요하며, 이를 7혹은 8비트에 할당한다는 것은 전혀 불가능한 것이다. 그래서 1바이트+1바이트(2바이트)의 형태로 만들어 한글 코드로서 이용한다. 따라서 처음 오게되는 1바이트의 상위 비트(MSB)1이 세트되면 한글 코드로 인식하게되어 다음 연속으로 오는 1바이트를 처음과 연결된 하나의 코드로 생각하게 된다. 그러나 MSB0이 세트되면 일반적인 영문 코드로 인식하여 다음에 오는 1바이트는 처음의 1바이트와 무관하게 된다. 따라서 한글 코드를 구현하는데는 실제적으로는 15비트가 드는 셈이다. 이런 코드를 설정할 경우 한글의 모든 조합이 가능해짐으로 초중종성의 조합에 따른 모든 글자가 코드화 될 수 있다. 그러나 초기의 2바이트 조합형 한글 코드는 컴퓨터를 보급하고 있는 여러 업체들에 의해서 각각의 코드가 개발되었기 때문에 쉽사리 표준화 될 수 없었다. 그것은 각 코드의 사용에 있어서 기업의 이윤이 개입되었기 때문이다. 어느 한업체의 코드가 표준화된다면, 다른 업체의 한글 관련 제품들은 모두 새로 업그레이드 되어야 할 필요가 생기게되고, 또한 이러한 노력에 따른 부대비용의 증가와 판매 전략의 문제등에 상당한 역효과를 초래할 가능성이 있었기 때문이다. 그래서 표준화될 코드는 전혀 다른 기업 등에서 채용하지 않은 한글 코드가 되어야 했으며, 소위 절름발이 코드라고 불리우는 KSC 5601-87이 탄생하게 되는 계기가 되었다.

회사별

bit

43210

삼보, 대우, 현대, 쌍용, 큐닉스

삼 성

금 성

초 성

중 성

초 성

초 성

중 성

초 성

초 성

중 성

초 성

00000

no code

no code

no code

fill code

no code

fill code

fill code

no code

fill code

00001

fill code

no code

fill code

no code

no code

00010

fill code

fill code

00011

no code

00100

00101

no code

00110

no code

00111

01000

no code

no code

no code

no code

01001

no code

no code

no code

01010

no code

01011

no code

01100

no code

01101

no code

01110

no code

01111

no code

10000

no code

no code

no code

no code

10001

no code

no code

no code

10010

no code

10011

no code

10100

no code

no code

10101

no code

no code

10110

no code

no code

10111

no code

no code

11000

no code

no code

no code

no code

no code

11001

no code

no code

no code

no code

no code

no code

11010

no code

no code

11011

no code

no code

11100

no code

no code

no code

11101

no code

no code

no code

no code

11110

no code

no code

no code

no code

no code

no code

no code

11111

no code

no code

no code

no code

no code

no code

no code

fill code

no code

각각의 코드 중에서 가중 유력한 조합형 한글 코드는 삼보 조합형, 혹은 상용 조합형 코드라고 불렸던 한글 코드이다. 위의 표에서 알 수 있듯이 이 코드는 몇개의 회사가 서로 협력하여 설계하였고, 또한 여러 사항에서 충돌의 소지가 있는 부분을 피했기 때문에 표준으로 사용하기에 전혀 문제가 없었다.

<특징>

한글 창제의 원리에 맞게 만들어진 코드이다. 따라서 모든 글자들 표시할 수 있다.

초성, 중성, 종성의 분리가 쉽기 때문에 (5비트씩 끊으면 된다.) 음성인식 등의 분야에서 형태소 분석 등의 활용성이 매우 크다.

한글 데이터를 소트(정렬)함에 있어서 아주 간단한 루틴으로 구성할 수 있다.

 

2.2.8 유니코드

Unicode8비트 문자코드인 아스키(ASCII) 코드를 16비트로 확장하여 세계 각국의 언어를 통일된 방법으로 표현할 수 있게 제안된 국제적인 코드 규약의 이름이다.

유니코드는 텍스트나 스크립트 문자에 대한 바이너리 코드를 확립하기 위한 완전히 새로운 아이디어이다. 공식적으로는 "세계문자 표준 - 유니코드"라고 불리는 이 코드체계는 "세계 각국의 다양한 현대 언어로 작성된 텍스트에 대해 상호교환, 처리, 및 표현"을 용이하게 하기 위한 시스템이다.

현재 유니코드 표준은 24개 언어를 지원하기 위해 34,168개의 개별 코드문자를 담고 있는데, 이 문자들은 세계 주요 언어로 작성된 문자들을 모두 충족시키기에 충분하며, 심지어 여러가지 언어로 작성된 고문서(古文書)까지도 지원할 수 있다.

현재 아직 포함되지 않은 몇 가지 현대 언어를 추가하기 위한 작업이 진행중이다. 유니코드 표준은 버전 1.0

, 다양한 나라가 서로 동일한 혹은 비슷한 의미의 문자를 저마다 다른 인코딩 방식을 사용함으로써, 자료 및 프로그램의 호환성 및 확장성에 문제를 일으키는 관계로 이를 하나의 문자 세트인 유니코드로 통합시켜 표현함으로써 해결하자는 뜻에서 "유니코드"는 전세계 주요 컴퓨터회사들(IBM마이크로소프트사 등에 의해 만들어진 통일된 코드체계)이 업계표준으로 규정한 만국공통 문자코드이다

미국에서 개발되어진 컴퓨터는 그 구조가 영어를 바탕으로 정의되어 있기에 8비트로 표현할 수 있는 256자는 영어나 라틴권 등에서는 문제가 없으나, 한국, 일본, 중국, 아랍 등의 다양한 문자들을 표현하는 데는 한계가 있다. 또한 각 나라마다 같은 코드 값에 다른 글자를 쓰는 방식으로는 국제간의 원활한 자료 교환이 불가능하기 때문에 코드를 16비트 체제로 확장해서 65,536자의 영역 안에 전 세계의 모든 글자를 표시하는 표준안인 것이다.

영어를 사용하는 국가에서는 아스키 코드보다 두 배의 공간이 필요하기 때문에 일반적인 통신 등에서는 그만큼의 낭비가 되지만 유니코드를 이용하면 프로그램을 하나만 만들면 모든 나라들의 글자를 처리할 수 있기 때문에 그만큼 큰 이점도 되는 것이다.

기본적으로 유니코드에서는 16비트를 사용하여 하나의 문자를 표현하고 있다. 유니코드 컨소시엄은 91년 만국공통의 문자코드를 제정, 보급하기 위해 창설됐으며 현재 북미.유럽.아시아 등에서 45개 주요기업이 참여하고 있다. 최근 "유니코드3.0"을 출시 했으며 국가 단위의 국제기구인 ISO와 공동표준규격 마련 및 개발자 기술지원서비스를 병행하고 있다.

"유니코드2.0"에는 모두 65536(OXOOOO~OXFFFF)의 코드영역이 있는데 이 가운데 38885자는 주요 국가언어 구현용으로 이미 할당되어 있고 64백자는 사용자 정의 영역(Private Use Area)으로, 2249자는 향후 새로 추가될 언어영역(Future Use Area)으로 각각 비워두고 있다. 현재할당된 주요 언어는 아스키(미국표준정보교환코드),그리스어,라틴어,시릴문자,히브리어,타이어,기호문자(Symbols),함수문자(Punctuation),아랍어,가나,(Hangul Jamo),CJK(..한 공통한자)영역, 표의문자(한자), 한글(HangulSyllables), 대용문자(Surrogates) 등이다.

코드할당비율을 보면 한자가 39.89%(292)로 가장 많고 그 다음이 한글 17.04%(11172), 아스키 및 기호문자 10.39%(6811) 등의 순이다.

우리나라에서도 지난 96216일 서울 롯데호텔에서 설명회를 열었고 우리나라에서도 다양한 서체가 개발되고 있다.

11,172자의 한글을 연속된 공간에 가나다라 순서로 ''에서 ''까지를 코드화하는 방식이 유니코드 기술 위원회(UTC)에서 채택한 유니코드 2.0 규격이다.

3. 에러 검출 및 정정 코드

3.1 패리티 비트(parity code)

정보 비트에 1비트 여유 비트를 부가하여 전체 비트 중에서 1 또는 0의 개수를 홀수나 짝수로 하여 오류 검출을 할 수 있도록 만든 코드이나 전송 중에 두 비트가 동시에 변한다면 에러 검출이 불가능하다.

3.2 비퀴너리 코드(Biquinary code)

혼합 기수 표기법의 하나로, 10진수를 표현하는 데 각각 1자리를 2개의 숫자의 합으로 나타내는 것, 그 최초의 숫자는 0이나 1이며, 그 값은 그 숫자에 5를 곱한 것과 같고 두 번째의 숫자는 0,1,2,3,4, 중의 하나로서, 그 값은 그 숫자에 1을 곱한 것(숫자 자체의 값)과 같다. 결국 이 코드는 오류 검출을 위한 코드의 한 방법으로서 다음과 같이 구성되어 있다.

10진수

5 0 4 3 2 1 0

0

0 1 0 0 0 0 1

1

0 1 0 0 0 1 0

2

0 1 0 0 1 0 0

3

0 1 0 1 0 0 0

4

0 1 1 0 0 0 0

5

1 0 0 0 0 0 1

6

1 0 0 0 0 1 0

7

1 0 0 0 1 0 0

8

1 0 0 1 0 0 0

9

1 0 1 0 0 0 0

이 코드는 각 그룹에 1이 반드시 2개 포함되어 있으므로 어느 한 비트에 오류가 발생하면 1의 개수가 달라져 오류를 검출할 수 있다. 그러나 10으로, 01로 바뀌면 1의 합계수 2개에는 변함이 없어 오류를 검출할 수 없다.

3.3 해밍 코드(Hamming code)

미국 Bell 연구소의 해밍(Hamming)에 의하여 고안된 코드 체계로서 한 비트의 오류를 자동적으로 정정해 주는 코드이다. 이 코드는 3개의 여분 비트(영숫자일 경우에는 4개의 여분 비트)를 추가하여 단일 오류를 정정할 수 있으며, 2개 이상의 종복된 오류를 정정하려면 이보다 더 많은 여분의 비트가 필요하다.

오늘날에는 휴대전화나 콤팩트디스크 등에서 신호의 오류를 수정하거나, 자료를 압축해 인터넷 속도를 향상시킬 때 유용하게 쓰인다.

) 원래의 코드가 0011001이고, 짝수 패리티를 수행한다고 했을 때, 전송 후 에러가 발생하여 0010001이 수신 되었다고 가정하자.

비트 표시

P1

P2

M1

P3

M2

M3

M4

비트 자리

1

2

3

4

5

6

7

수신 비트

0

0

1

0

0

0

1

P1은 비트 자리 1, 3, 5, 7을 점검하여 두 개의 1이 있으므로 오류가 없고, 따라서 0이 된다. P2는 비트 자리 2, 3, 6, 7을 점검하여 두 개의 1이 있으므로 오류가 없고, 따라서 0이 된다. P3는 비트 자리 4, 5, 6, 7을 점검하여 한 개의 1이 있으므로 오류가 발생하였고, 따라서 1이 된다. 결과적으로 만들어 진 2 진 숫자는 P3P2P1 자리 순으로 하면 100이 되고, 이 값에 따라 네 번째 자리에 오류가 발생 하였음을 알 수 있다.

3.4 2 Out Of 5 코드

자리 결정 기수법의 하나로서 10진 숫자를 5개의 2진 숫자에 의해서 나타내는 것, , 5개 중 2개가 1을 나타내고 3개는 0을 나타내거나 또는 이와 반대의 방법으로 표현한다.

3.5 2 Ring-Counter Code(링 카운터 코드)

링 카운터 코드는 10개의 비트로 구성되어 있으며, 모든 코드가 하나의 비트에 반드시 1을 가진다. 이것은 에러 검출과 코드를 만들기 위한 디지털 회로를 작동시키는데 용이하게 사용된다.


ⓐ data [자료 ; 데이터] : 인간이나 컴퓨터가 통신, 해석 및 처리를 할 수 있도록 형성한 사실 및 개념의 표현을 어떠한 조건, , 또는 상태로 나타내는 숫자나 문자.

ⓑ code [코드 ; 부호] : 정보를 표현하기 위한 기호 체계로 자료 처리에서는 자료나 프로그램을 자료 처리 장치에 받아들여지는 기호의 형식으로 표현하는 것을 말한다.

ⓒ register [레지스터] : 산술적, 논리적, 전송상의 조작을 쉽게 하기 위하여 하나 또는 그 이상의 비트나 문자를 임시로 저장하는 장치

ⓓ binary code : 문자가 일련의 2진 숫자로 표시되는 부호로서, 통상 부호계에서는 여러 종류의 문자를 표현하는데 6비트를 이용하여 64(26) 종류의 문자까지 표현할 수 있으며 각 문자는 고유의 비트 패턴으로 표현됨.

ⓔ DMM [digital multimeter ; 디지털 멀티미터] : 전기 회로의 가장 기본적인 측정 항목인 전압, 전류 그리고 저항을 측정하는 전자 기기로, 측정한 값을 숫자로 표시하여 주는 것.

ⓕ A/D converter [아날로그 디지털 변환기] : 전기적인 아날로그 양을 디지털 양으로 변환하는 장치. 전류나 전압의 양 또는 전류나 전압으로 변화된 온도나 압력, 유량 등의 계측값을 디지털 컴퓨터에 입력시킬 때에 사용한다.

ⓖ self-complementing code [자체 보수 코드] : 각 자리의 2진수 01, 10으로 바꾸는 2진수의 상호 교환에 의해 보수를 얻을 수 잇는 코드로서, 가중값 코드중의 2421 코드와 51111 코드가 있다.

 Control Data Corporation(CDC) : UNIVAC 컴퓨터 회사의 직원들이 독립하여 설립한 회사로 주로 대형 컴퓨터를 생산한다.

ⓘ Bell laboratory [벨 연구소] : 미국 뉴저지 주에 있는 컴퓨터 및 전자 공학 부분에서 많은 업적을 낸 연구소

ⓙ 수학자 리처드 웨슬리 해밍(Richard Wesley Hamming, 19161988)


댓글