1 / 31

제 3 장 데이터의 표현

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

Download Presentation

제 3 장 데이터의 표현

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 3 장 데이터의 표현 구성 • 진법과 진법 변환 • 연산과 보수 • 데이터의 표현 • 데이터 구조의 표현

  2. 제 3 장 데이터의 표현 • Data Types • 수치 데이터와 문자 데이터 • 수치 데이터 : 산술 연산 • 문자 데이터 : 입출력/ data processing • Binary information : memory or processor registers에 저장 • 인간  정보 전달 : 언어, 그림, 문자, 숫자, 기호 • 디지털 컴퓨터 : 인간의 정보 체계 이해 못함 공통적인 데이터 표현 방식 자료의 외부적 표현 자료의 내부적 표현

  3. 진법과 진법 변환 • 진법 • 베이스(Base) or Radix(기수)rsystem : 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

  4. 진법과 진법 변환 Hex Binary Decimal Oct 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 50101 5 5 6 0110 6 6 7 0111 7 7 8 1000 8 10 9 1001 9 11 A 1010 10 12 B1011 11 13 C 1100 12 14 D 1101 13 15 E 1110 14 16 F 1111 15 17 Tab. 3-1 • 진법 • 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

  5. 진법과 진법 변환 • 진법 변환 • 10진수  n진수 • 10진수  2진수, 8진수, 16진수 (1) 10진수를 2의 거듭제곱으로 표현 56 = 32 + 16 + 8 = 25+ 24+ 23 = 1110002 (2) 10진수를 반복해서 2로 나눔 LSB 56 = 111000 MSB

  6. 진법과 진법 변환 • 예제 [3.2] 10진수 123.625를 2진수로 변환 소수점 변환 0.625x 2 = 1.250 integer 1 MSB 0.250 x 2 = 0.5 integer 0 0.500 x 2 = 1.0 integer 1 LSB Read the result downward .62510 = .1012

  7. 진법과 진법 변환 • 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 6 4 6 = 16468 1 1 1 0 1 0 0 1 1 02 = 0 0 1 1 1 0 1 0 0 1 1 0 3 A 6 = 3A616

  8. 연산 • 덧셈 • 2진수 덧셈 • 8진수 덧셈 • 16진수 덧셈

  9. 연산 • 뺄셈 • 곱셈 • 나눗셈 p. 162

  10. 보수 • 보수(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 number r : base n : digit number * r의 보수 (r-1)의 보수 +1 =(rn-1)-N+1= rn-N

  11. 보수를 이용한 뺄셈 (M-N), N0 • 부호가 없는 정수의 뺄셈 • r의 보수를 이용한 방법, r-1의 보수를 이용한 방법 ① 감수 N에 대한 r의 보수 또는 r-1의 보수를 구한다. ② ①에서 구해진 감수 N의 r의 보수 또는 r-1의 보수를 피감수 M과 더한다. ③ 자리올림이 발생되면 그 결과는 양수이다. r의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 버린다. r-1의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 최하위 비트에 더해준다. 즉, 덧셈을 한번 더 수행한다. ④ 자리올림이 발생되지 않으면 그 결과는 음수이다. 따라서 그 결과를 다시 r의 보수 혹은 r-1의 보수를 취해서 결과에 -기호를 붙인다.

  12. 보수를 이용한 뺄셈 • 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 M  N 13250(M) - 72532(N) = -59282 13250 + 27468 (72532 의 10의 보수) 0 40718 Result = -(40718의 10의 보수) = -(59281+1) = -59282 M  N No End Carry Discard End Carry 1000011(X) - 1010100(Y) = -0010001 1000011 + 0101100 (1010100 의 2의 보수) 0 1101111 Result = -(1101111의 2의 보수) = -(0010000+1) = -0010001 X  Y X  Y

  13. 보수를 이용한 뺄셈 • 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 M  N M  N 13250(M) - 72532(N) = -59282 13250 + 27467 (72532 의 9의 보수) 0 40717 Result = -(40717의 9의 보수) = -(59282) = -59282 No End Carry Discard End Carry 1 1000011(X) - 1010100(Y) = -0010001 1000011 + 0101011 (1010100 의 1의 보수) 0 1101110 Result = -(1101110의 1의 보수) = -(0010001) = -0010001 X  Y X  Y

  14. 데이터의 표현 수치 데이터 형식(numeric data) 문자 데이터 형식(character data) • 수치 데이터 형식 • 고정 소수점 표현(Fixed-Point Representation) • 레지스터에서 소수점의 위치 표현(2가지 방법) • 레지스터의 가장 왼쪽에 있다고 가정(Fraction : 0.xxxxx) • 레지스터의 가장 왼쪽에 있다고 가정(Integer : xxxxx.0) • 고정 소수점 표현 방식 (1) Fixed Point (2) Floating Point ∵ 실제로 소수점은 레지스터 내부에 나타나지는 않으며 레지스터에 저장된 수를 정수로 취급할 것인가 혹은 소수로 취급할 것인가에 따라 소수점의 위치는 항상 고정되어 있다. Fig. 3-1

  15. 데이터의 표현 부호 비트 0 : 양수 1 : 음수 +14 -14 0 0001110 1 0001110 0 0001110 1 1110001 0 0001110 1 1110010 • 정수 표현 • 부호 절대값(Signed-magnitude) 표현 • 부호와 1의 보수(Signed-1’s complement) 표현 • 부호와 2의 보수(Signed-2’s complement) 표현 • 수의 범위(n비트 레지스터) • 부호 절대값 • 부호와 1의 보수 • 부호와 2의 보수 : -0이 존재 않음 -(2n-1-1)∼(2n-1-1) -(2n-1-1)∼(2n-1-1) -(2n-1)∼(2n-1-1)

  16. 데이터의 표현 • 수치 데이터 형식 • 부동 소수점 표현(Floating-Point Representation) • 지수 부분(exponent part) • 가수 부분(mantissa part) • Bias-64 • 지수 부분의 양수와 음수를 구분 • 지수값 + 6410 혹은 4016 Fig. 3-2 양의 지수 127 가수부분의 유효자리수 바로 왼쪽에 소수점이 존재하는 것으로 가정하여 가수 부분의 값이 0.1에서 1사이에 있도록 정규화(normalize)하여 표현 65 41 64 40 (100) (160) 63 3F 음의 지수 0

  17. 데이터의 표현 • 예 • 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

  18. 데이터의 표현 • 10진수 데이터 • 팩 10진법 형식 • 양수(+) : C(1100), 음수(-) : D(1101), 부호 없는 양수 : F(1111) • 언팩 10진법 형식 • 양수(+) : C(1100), 음수(-) : D(1101), 부호가 없는 양수 : F(1111)

  19. 데이터의 표현 수치 데이터 형식(numeric data) 문자 데이터 형식(character data) • 문자 데이터 형식 • 코드 : 영문자, 소수점, 마침표 등의 특수 기호 포함 • 이진 코드(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

  20. 데이터의 표현 • 기타 이진 코드 • Gray 코드 : 인접 코드간에 하나의 비트만이 변화 • 3초과 코드 • BCD 코드 + 0011(3) • 자기 보수(self complement) 성질(10, 01로 바꾸면 쉽게 보수를 얻음) 십진수 7의 9의 보수는 2 3초과 코드 1010 0101 • 알파뉴메릭 코드 • ASCII 코드 • Standard alphanumeric binary code • 7비트 • 128개의 서로 다른 정보 표현 • EBCDIC 코드 • 확장형 BCD 코드 • 8비트, 대형 컴퓨터에서 많이 사용하는 코드, 주로 IBM 장비

  21. Transmitter Receiver  ~ ~ 데이터의 표현 • 에러 검출 및 정정 코드 • 외부 환경(잡음)으로 인한 전송 중의 정보 변질 • 패리티 비트 (parity bit) : 메세지 비트 + 여분 비트(odd/even) • 짝수(even) 패리티 • 전체 1의 개수(패리티 비트를 포함)가 짝수 개 가 되도록 패리티 비트를 추가 1 1 0 0 0 0 1 1 • 홀수(odd) 패리티 • 전체 1의 개수(패리티 비트를 포함)가 홀수 개 가 되도록 패리티 비트를 추가 1 1 0 0 0 0 0 1 Added parity bit Added parity bit

  22. 데이터의 표현 • 에러 검출 및 정정 코드 • 해밍 코드(Hamming code) • 에러 정정 코드(error correction code) • 한 비트의 에러를 검출하고 정정 • 정보 비트의 수 m, 패리티 비트의 수 p • 예 : 8비트의 정보를 갖는 짝수 해밍 코드의 예 정보 비트 m = 8, 위의 식에 의해 p=4 • 패리티 비트의 위치 선정, 2p자리, 즉 1, 2, 4, 8 등에 대응하는 수의 자리에 위치 • 2p≥ m + p + 1

  23. 데이터의 표현 • 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의 개수 홀수 : 1 1의 개수 짝수 : 0

  24. 데이터 구조의 표현 • 데이터 구조의 표현 • 데이터 처리 효율성에 영향 • 중앙처리장치 기억장치 : 고유의 주소가 부여 • 1차원 기억 공간의 구조(기억 용량 N) 자료교환 : word

  25. 데이터 구조의 표현 • 선형 리스트(linear list) • 1차원벡터 형식의 데이터 구조 • 큐(queue), 스택(stack), 데크(dequeue) • FIFO, LIFO, 혼합 Fig. 3-7

  26. 데이터 구조의 표현 Fig. 3-8 Fig. 3-9

  27. 데이터 구조의 표현 • 링크드 리스트(linked list) • 다음 데이터 요소의 주소를 나타낼 수 있는 데이터 구조 Fig. 3-10 Fig. 3-11

  28. 데이터 구조의 표현 • 링크드 리스트(linked list) • 데이터 첨가 전과 후 Fig. 3-12

  29. 데이터 구조의 표현 • 링크드 리스트(linked list) • 데이터 삭제 전과 후 Fig. 3-13

  30. 데이터 구조의 표현 • 비선형 구조(nonlinear structure) • 2차원벡터 혹은 행렬 구조 • 열 우선(column-wise) 선형 리스트 : 사람들의 성명, 평균 연령, 급여 평균 값 • 행 우선(row-wise) 선형 리스트 : 어느 특정 인물에 대한 인적 사항 Tab. 3-13

  31. 데이터 구조의 표현 • [그림 3-14]와 [그림 3-15]의 단점을 보완할 수 있는 구조 Fig. 3-16

More Related