제 3 장 데이터의 표현
DESCRIPTION
제 3 장 데이터의 표현. 구성. 진법과 진법 변환 연산과 보수 데이터의 표현 데이터 구조의 표현. 제 3 장 데이터의 표현. Data Types 수치 데이터와 문자 데이터 수치 데이터 : 산술 연산 문자 데이터 : 입출력/ data processing Binary information : memory or processor registers 에 저장 인간 정보 전달 : 언어, 그림, 문자, 숫자, 기호 디지털 컴퓨터 : 인간의 정보 체계 이해 못함. 공통적인 데이터 표현 방식. - PowerPoint PPT PresentationTRANSCRIPT
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
제 3 장 데이터의 표현
진법과 진법 변환 연산과 보수 데이터의 표현 데이터 구조의 표현
구성
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
Data Types 수치 데이터와 문자 데이터
수치 데이터 : 산술 연산 문자 데이터 : 입출력 / data processing
Binary information : memory or processor registers 에 저장 인간 정보 전달 : 언어 , 그림 , 문자 , 숫자 , 기호 디지털 컴퓨터 : 인간의 정보 체계 이해 못함
제 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
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
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
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
진법과 진법 변환
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
진법과 진법 변환
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
덧셈 2 진수 덧셈
8 진수 덧셈
16 진수 덧셈
연산
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
뺄셈
곱셈
나눗셈
연산
p. 162
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
보수
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
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
보수를 이용한 뺄셈
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
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
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
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
소수점 위치(가정)
단정도
배정도
지수부분
지수부분
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
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
부호
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)
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 장비
데이터의 표현
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
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
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
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
데이터 구조의 표현
데이터 구조의 표현 데이터 처리 효율성에 영향
중앙처리장치 기억장치 : 고유의 주소가 부여
1차원 기억 공간의 구조 (기억 용량 N)
자료교환 : word
주소 0 N-11 2 3 4
……
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
데이터 구조의 표현
선형 리스트 (linear list) 1차원 벡터 형식의 데이터 구조
큐 (queue), 스택 (stack), 데크 (dequeue) FIFO, LIFO, 혼합
Fig. 3-7
저장
REAR FRONT
읽기
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
데이터 구조의 표현
Fig. 3-8
저장
TOP BOTTOM
읽기
저장
LEFTMOST RIGHTMOST
읽기 읽기 저장
Fig. 3-9
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
데이터 구조의 표현
링크드 리스트 (linked list) 다음 데이터 요소의 주소를 나타낼 수 있는 데이터 구조
Fig. 3-10데이터 주소(링크)
데이터링크
HEAD
#
Fig. 3-11
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
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
Chap. 3 Chap. 3 데이터의 표현데이터의 표현Computer System Architecture
데이터 구조의 표현
비선형 구조(nonlinear structure) 2차원 벡터 혹은 행렬 구조
열 우선(column-wise) 선형 리스트 : 사람들의 성명 , 평균 연령 , 급여 평균 값
행 우선(row-wise) 선형 리스트 : 어느 특정 인물에 대한 인적 사항
Tab. 3-13
성 명 연령 성별 직 업 월급 (만원 )
김진환박진희조상철류현제장미혜
…
5032644129…
남여남남여…
회사원무용수변호사공무원배 우
…
100300500130420…
성명
리스트연령
리스트성별
리스트직업
리스트월급
리스트 …
김진환
인적사항박진희
인적사항조상철
인적사항류현제
인적사항장미혜
인적사항 …
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]에서 속성들을 링크시킨 구조