제 3 장 데이터의 표현

31
Chap. 3 Chap. 3 데데데데 데데 데데데데 데데 omputer System Architecture 데 3 데 데데데데 데데 데데데 데데 데데 데데데 데데 데데데데 데데 데데데 데데데 데데 데데

Upload: yvette-salas

Post on 04-Jan-2016

58 views

Category:

Documents


1 download

DESCRIPTION

제 3 장 데이터의 표현. 구성. 진법과 진법 변환 연산과 보수 데이터의 표현 데이터 구조의 표현. 제 3 장 데이터의 표현. Data Types 수치 데이터와 문자 데이터 수치 데이터 : 산술 연산 문자 데이터 : 입출력/ data processing Binary information : memory or processor registers 에 저장 인간  정보 전달 : 언어, 그림, 문자, 숫자, 기호 디지털 컴퓨터 : 인간의 정보 체계 이해 못함. 공통적인 데이터 표현 방식. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

제 3 장 데이터의 표현

진법과 진법 변환 연산과 보수 데이터의 표현 데이터 구조의 표현

구성

Page 2: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

Data Types 수치 데이터와 문자 데이터

수치 데이터 : 산술 연산 문자 데이터 : 입출력 / data processing

Binary information : memory or processor registers 에 저장 인간 정보 전달 : 언어 , 그림 , 문자 , 숫자 , 기호 디지털 컴퓨터 : 인간의 정보 체계 이해 못함

제 3 장 데이터의 표현

공통적인 데이터 표현 방식자료의 외부적 표현자료의 내부적 표현

Page 3: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

진법 베이스 (Base) or Radix( 기수 ) r system : uses distinct symbols for r

digits 가장 일반적인 진법 :10 진법 (Decimal), 이진법 (Binary), 8 진법 (Octal),

16 진법 (Hexadecimal) 수 N 의 표시

d : 디지트 (digit), r(radix or base) : 기수 , n : 자릿수

10 진법 10 개의 부호로 구성 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

2 진법 2 개의 부호로 구성 0, 1 Bit = Binary digit

진법과 진법 변환

N = dn-1rn-1 + dn-2rn-2 … + +d1r1 + d0r0 + d-1r-1 + d-2r-2 … + + d-m r-m

Page 4: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

진법 16 진법

16 개의 부호로 구성 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

진법 변환 n 진수 10 진수

2 진수 10 진수 (1011)2 = (1×23) + (0×22) + (1×21) + (1×20) = (11)10

(1011.101)2 = (1 x 23) + (0 x 22)+ (1 x 21) + (1 x 2o) + (1 x 2-1) + (0 x 2-2) + (1 x 2-3) = 810+ 0 + 210 + 110 + 0.510 + 0 + 0.12510

= 11.62510

8 진수 10 진수 (123)8 = (1×82) + (2×81) + (3×80) = 64 + 16 + 3 = (83)10

16 진수 10 진수 (1AB)16 = (1×162) + (A×161) + (F×160) = 256 + 160 + 15 = (431)10

진법과 진법 변환Hex Binary Decimal Oct

0 0000 0 01 0001 1 12 0010 2 23 0011 3 34 0100 4 45 0101 5 56 0110 6 67 0111 7 78 1000 8 109 1001 9 11A 1010 10 12B 1011 11 13C 1100 12 14D 1101 13 15E 1110 14 16F 1111 15 17

Tab. 3-1

Page 5: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

진법 변환 10 진수 n 진수

10 진수 2 진수 , 8 진수 , 16 진수

진법과 진법 변환

(1) 10 진수를 2 의 거듭제곱으로 표현

56 = 32 + 16 + 8 = 25 + 24 + 23

= 1110002

(2) 10 진수를 반복해서 2 로 나눔

LSB

MSB

56 = 111000

Page 6: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

예제 [3.2] 10 진수 123.625 를 2 진수로 변환

소수점 변환0.625 x 2 = 1.250 integer 1 MSB0.250 x 2 = 0.5 integer 0 0.500 x 2 = 1.0 integer 1 LSB

Read the result downward .62510 = .1012

진법과 진법 변환

Page 7: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

2 진수를 8/16 진수로 변환

8/16 진수를 2 진수로 변환 9F216 = 9 F 2 372.548 = 3 7 2 . 5 4

= 1001 1111 0010 = 011 111 010 101 100

= 1001111100102 = 0111110101011008

1 1 1 0 1 0 0 1 1 02 = 0 00 0 1 1 1 0 1 0 0 1 1 0

3 A 6

= 3A616

1 6 4 6 = 16468

진법과 진법 변환

Page 8: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

덧셈 2 진수 덧셈

8 진수 덧셈

16 진수 덧셈

연산

Page 9: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

뺄셈

곱셈

나눗셈

연산

p. 162

Page 10: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

보수 (Complements) 용도 : 뺄셈 연산 (subtraction operation), logical manipulation r 기수 시스템 (base r system)

(1) r 의 보수 (2) (r-1) 의 보수» 2 진수 : 2 의 보수와 1 의 보수» 10 진수 : 10 의 보수와 9 의 보수

(r-1) 의 보수 D 의 (r-1) 의 보수 = (rn-1)-D

» D=546700 에 대한 9 의 보수 (106-1)-546700 = (1000000-1)-546700= 999999-546700 = 453299» D=101101 에 대한 1 의 보수 (26-1)-101101= (1000000-1)-101101= 111111-101101 = 010010

r 의 보수 D 의 r 의 보수 = rn-N

» D= 2389 에 대한 10 의 보수 = 7610+1= 7611» D= 1101100 에 대한 2 의 보수 = 0010011+1= 0010100

D : given numberr : basen : digit number

* r의 보수(r-1) 의 보수 +1 =(rn-1)-N+1= rn-N

보수

Page 11: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

부호가 없는 정수의 뺄셈 r 의 보수를 이용한 방법 , r-1 의 보수를 이용한 방법

보수를 이용한 뺄셈

① 감수 N 에 대한 r 의 보수 또는 r - 1 의 보수를 구한다 .

② ①에서 구해진 감수 N 의 r 의 보수 또는 r - 1 의 보수를 피감수 M 과 더한다 .

③ 자리올림이 발생되면 그 결과는 양수이다 .

r 의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 버린다 .

r - 1 의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 최하위

비트에 더해준다 . 즉 , 덧셈을 한번 더 수행한다 .

④ 자리올림이 발생되지 않으면 그 결과는 음수이다 . 따라서 그 결과를 다시 r의 보수 혹은 r - 1 의 보수를 취해서 결과에 -기호를 붙인다 .

① 감수 N 에 대한 r 의 보수 또는 r - 1 의 보수를 구한다 .

② ①에서 구해진 감수 N 의 r 의 보수 또는 r - 1 의 보수를 피감수 M 과 더한다 .

③ 자리올림이 발생되면 그 결과는 양수이다 .

r 의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 버린다 .

r - 1 의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 최하위

비트에 더해준다 . 즉 , 덧셈을 한번 더 수행한다 .

④ 자리올림이 발생되지 않으면 그 결과는 음수이다 . 따라서 그 결과를 다시 r의 보수 혹은 r - 1 의 보수를 취해서 결과에 -기호를 붙인다 .

(M-N), N0

Page 12: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

r 의 보수를 이용한 뺄셈 예 (M-N) 1) M + (rn-N) 2) M N : 결과는 양수 = M-N, 발생된 end carry 는 버린다 . 3) M N : 결과는 음수 = - r’s complement of (N-M), No Carry

72532(M) - 13250(N) = 59282

72532

+ 86750 (13250 의 10 의 보수 )

1 59282

Result = 59282

1010100(X) - 1000011(Y) = 0010001

1010100

+ 0111101 (1000011 의 2 의 보수 )

1 0010001

Result = 0010001

13250(M) - 72532(N) = -59282

13250

+ 27468 (72532 의 10 의 보수 )

0 40718

Result = -(40718 의 10 의 보수 )

= -(59281+1) = -59282

M NM N

Discard End Carry

No End Carry

1000011(X) - 1010100(Y) = -0010001

1000011

+ 0101100 (1010100 의 2 의 보수 )

0 1101111

Result = -(1101111 의 2 의 보수 )

= -(0010000+1) = -0010001

X YX Y

보수를 이용한 뺄셈

Page 13: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

r-1 의 보수를 이용한 뺄셈 예 (M-N) 1) M + (rn-1-N) 2) M N : 결과는 양수 = M-N, 발생된 end carry 를 한번 더

Addition 3) M N : 결과는 음수 = - (r-1)’s complement of (N-M), No Carry

72532(M) - 13250(N) = 59282

72532

+ 86749 (13250 의 9 의 보수 )

1 59281

+

59282

Result = 59282

1010100(X) - 1000011(Y) = 0010001

1010100

+ 0111100 (1000011 의 1 의 보수 )

1 0010000

+ 1

0010001

Result = 0010001

13250(M) - 72532(N) = -59282

13250

+ 27467 (72532 의 9 의 보수 )

0 40717

Result = -(40717 의 9 의 보수 )

= -(59282) = -59282

M NM N

Discard End Carry

No End Carry

1000011(X) - 1010100(Y) = -0010001

1000011

+ 0101011 (1010100 의 1 의 보수 )

0 1101110

Result = -(1101110 의 1 의 보수 )

= -(0010001) = -0010001

X YX Y

보수를 이용한 뺄셈

1

Page 14: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

수치 데이터 형식 고정 소수점 표현 (Fixed-Point Representation) 레지스터에서 소수점의 위치 표현 (2 가지 방법 )

레지스터의 가장 왼쪽에 있다고 가정 (Fraction : 0.xxxxx) 레지스터의 가장 왼쪽에 있다고 가정 (Integer : xxxxx.0)

고정 소수점 표현 방식

데이터의 표현

수치 데이터 형식 (numeric data)

문자 데이터 형식 (character data)(1) Fixed Point(2) Floating Point

∵ 실제로 소수점은 레지스터 내부에 나타나지는 않으며 레지스터에 저장된 수를 정수로 취급할 것인가 혹은 소수로 취급할 것인가에 따라 소수점의 위치는 항상 고정되어 있다 .

(Magnitude)크기015

(Magnitude)크기031

half word

full word

(S)부호

(S)부호

Fig. 3-1

Page 15: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

정수 표현 부호 절대값 (Signed-magnitude) 표현 부호와 1 의 보수 (Signed-1’s complement) 표현 부호와 2 의 보수 (Signed-2’s complement) 표현

수의 범위 (n 비트 레지스터 ) 부호 절대값 부호와 1 의 보수 부호와 2 의 보수 : -0 이 존재 않음

데이터의 표현

+14 -14

0 0001110 1 0001110

0 0001110 1 1110001

0 0001110 1 1110010

부호 비트0 : 양수1 : 음수

-(2n-1 - 1)∼(2n-1 - 1)

-(2n-1 - 1)∼(2n-1 - 1)-(2n-1)∼(2n-1 - 1)

부호와 절대값 1 부호와 의 보수 2 부호와 의 보수3 011 011 0112 010 010 0101 001 001 0010 000 000 000- 0 110 111 -- 1 101 110 111- 2 110 101 110- 3 111 100 101- 4 - - 100

Page 16: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

수치 데이터 형식 부동 소수점 표현 (Floating-Point Representation)

지수 부분 (exponent part) 가수 부분 (mantissa part)

Bias-64 지수 부분의 양수와 음수를 구분 지수값 + 6410 혹은 4016

데이터의 표현

가수부분의 유효자리수 바로 왼쪽에 소수점이 존재하는 것으로 가정하여가수 부분의 값이 0.1 에서 1 사이에 있도록 정규화 (normalize) 하여 표현

64 40

0

127

양의 지수

음의 지수

(100) (160)

41

3F63

65

Fig. 3-2

S

31 0

S

63 0

가수부분30 24 23

가수부분62 56 55

소수점 위치(가정)

단정도

배정도

지수부분

지수부분

Page 17: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

예 32 비트 , 기수 r=16, -(35.5)10 을 부동 소수점 표현 (1) 10 진수 16 진수로 변환 - (35.5)10 = - (23.8)16

(2) 정규화 (normalize) - (23.8)16 = - (0.238)×162

지수값 + 바이어스 값 = 2 + 40 = 42

데이터의 표현

1 100 0010 0010 0011 1000 0000 0000 0000031 30 24 23

2진수

16진수1 4 2 2 3 8 0 0 0

Page 18: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

10 진수 데이터 팩 10 진법 형식 양수 ( + ) : C(1100), 음수 ( - ) : D(1101), 부호 없는 양수 :

F(1111)

언팩 10 진법 형식 양수 ( + ) : C(1100), 음수 ( - ) : D(1101), 부호가 없는 양수 :

F(1111)

데이터의 표현

D

digit

1바이트1바이트1바이트1바이트

DDDDD SD

부호

F

digit

1바이트1바이트1바이트1바이트

DFDFD DS

부호

Page 19: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

문자 데이터 형식 코드 : 영문자 , 소수점 , 마침표 등의 특수 기호 포함

이진 코드 (binary code) BCD 코드

BCD(Binary Coded Decimal) : 10 진수 표현 4 비트 , 0~9 까지의 수를 표현 , 가중치 코드 , 일명 8421 코드

8 7 4 (Decimal)

1000 0111 0100 (BCD)

BCD 와 2 진수의 비교

13710 = 100010012 (Binary) - require only 8 bits

13710 = 0001 0011 0111BCD (BCD) - require 12 bits

데이터의 표현

수치 데이터 형식 (numeric data)

문자 데이터 형식 (character data)

Page 20: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

기타 이진 코드 Gray 코드 : 인접 코드간에 하나의 비트만이 변화 3 초과 코드

BCD 코드 + 0011(3) 자기 보수 (self complement) 성질 (10, 01 로 바꾸면 쉽게 보수를 얻음 )

십진수 7 의 9 의 보수는 2

3 초과 코드 1010 0101

알파뉴메릭 코드 ASCII 코드

Standard alphanumeric binary code 7 비트 128 개의 서로 다른 정보 표현

EBCDIC 코드 확장형 BCD 코드 8 비트 , 대형 컴퓨터에서 많이 사용하는 코드 , 주로 IBM 장비

데이터의 표현

Page 21: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

에러 검출 및 정정 코드 외부 환경 ( 잡음 ) 으로 인한 전송 중의 정보 변질

패리티 비트 (parity bit) : 메세지 비트 + 여분 비트 (odd/even) 짝수 (even) 패리티

전체 1 의 개수 ( 패리티 비트를 포함 ) 가 짝수 개 가 되도록 패리티 비트를 추가

1 1 1 0 0 0 0 1 1

홀수 (odd) 패리티 전체 1 의 개수 ( 패리티 비트를 포함 ) 가 홀수 개 가 되도록 패리티 비트를

추가

1 1 1 0 0 0 0 0 1

데이터의 표현

Transmitter Receiver~ ~

Added parity bit

Added parity bit

Page 22: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

에러 검출 및 정정 코드 해밍 코드 (Hamming code)

에러 정정 코드 (error correction code) 한 비트의 에러를 검출하고 정정 정보 비트의 수 m, 패리티 비트의 수 p

예 : 8 비트의 정보를 갖는 짝수 해밍 코드의 예 정보 비트 m = 8, 위의 식에 의해 p=4 패리티 비트의 위치 선정 , 2p 자리 , 즉 1, 2, 4, 8 등에 대응하는 수의 자리에 위치

데이터의 표현

2p ≥ m + p + 1

Page 23: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

P 의 값 결정 P1: 1, 3, 5, 7, 9, 11, 13 위치의 비트를 점검하여 1 의 개수가 짝수 P2: 2, 3, 6, 7, 10, 11, 14 위치의 비트를 점검하여 1 의 개수가 짝수 P4: 4, 5, 6, 7, 12, 13 위치의 비트를 점검하여 1 의 개수가 짝수 P8: 8, 9, 10, 11, 12, 13 위치의 비트를 점검하여 1 의 개수가 짝수

해밍 코드를 이용한 오류 정정

데이터의 표현

P1 = 1, 3, 5, 7, 9, 11 에서 1 의 수가 짝수 개이므로 0

P2 = 2, 3, 6, 7, 10, 11 에서 1 의 수가 홀수 개이므로 1

P4 = 4, 5, 6, 7, 12 에서 1 의 수가 홀수 개이므로 1

P8 = 8, 9, 10, 11, 12 에서 1 의 수가 짝수 개이므로 0

에러 체크 워드1 의 개수 홀수 : 11 의 개수 짝수 : 0

P8 P4 P2 P1

0 1 1 0

Page 24: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

데이터 구조의 표현 데이터 처리 효율성에 영향

중앙처리장치 기억장치 : 고유의 주소가 부여

1차원 기억 공간의 구조 (기억 용량 N)

자료교환 : word

주소 0 N-11 2 3 4

……

Page 25: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

선형 리스트 (linear list) 1차원 벡터 형식의 데이터 구조

큐 (queue), 스택 (stack), 데크 (dequeue) FIFO, LIFO, 혼합

Fig. 3-7

저장

REAR FRONT

읽기

Page 26: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

Fig. 3-8

저장

TOP BOTTOM

읽기

저장

LEFTMOST RIGHTMOST

읽기 읽기 저장

Fig. 3-9

Page 27: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

링크드 리스트 (linked list) 다음 데이터 요소의 주소를 나타낼 수 있는 데이터 구조

Fig. 3-10데이터 주소(링크)

데이터링크

HEAD

#

Fig. 3-11

Page 28: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

링크드 리스트 (linked list) 데이터 첨가 전과 후

Fig. 3-12Ai Ai+1 Ai+2

x y z

(a)

Ai Ai+2 Ai+3

x y z

y z

p

p z

Ai+1

(b)

y

Page 29: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

링크드 리스트 (linked list) 데이터 삭제 전과 후

Fig. 3-13Ai-1 Ai Ai+1

x y z

(a)

Ai-1 Ai

x y z

y

z

(b)

z

z

Page 30: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

비선형 구조(nonlinear structure) 2차원 벡터 혹은 행렬 구조

열 우선(column-wise) 선형 리스트 : 사람들의 성명 , 평균 연령 , 급여 평균 값

행 우선(row-wise) 선형 리스트 : 어느 특정 인물에 대한 인적 사항

Tab. 3-13

성 명 연령 성별 직 업 월급 (만원 )

김진환박진희조상철류현제장미혜

5032644129…

남여남남여…

회사원무용수변호사공무원배 우

100300500130420…

 성명

리스트연령

리스트성별

리스트직업

리스트월급

리스트 …

 김진환

인적사항박진희

인적사항조상철

인적사항류현제

인적사항장미혜

인적사항 …

Page 31: 제 3 장 데이터의 표현

Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture

데이터 구조의 표현

[ 그림 3-14] 와 [ 그림 3-15] 의 단점을 보완할 수 있는 구조

Fig. 3-16

김진환

박진희

50

32

남 여회사원

무용수

100

300

성명리스트 연령리스트 성별리스트 직업리스트 월급리스트

# #

(a) [그림 3-14]에서 인적 사항들을 링크시킨 구조

김진환

박진희

50

32

64

류현제

장미혜

김진환 인사 박진희 인사 조상철 인사 류현제 인사 장미혜 인사

조상철

41

29

(b) [그림 3-15]에서 속성들을 링크시킨 구조