340 likes | 841 Vues
2 장 . 데이터의 표현. Lecture #2. 수치 데이터 – 진법 (base) 10 진수 2 진수 8 진수 16 진수. 일상 생활에서 주로 사용하는 수치 데이터의 표현법. 컴퓨터 내부 또는 컴퓨터 프로그램에서 사용하는 수치 데이터의 표현법. 2.1 수의 진법 변환 (1). 진법 변환 10 진 변환 972 = 9 × 10 2 + 7 × 10 1 + 2 × 10 0. 2 진수 → 10 진수 변환
E N D
2장. 데이터의 표현 Lecture #2
수치 데이터 –진법(base) 10 진수 2 진수 8 진수 16 진수 일상 생활에서 주로 사용하는 수치 데이터의 표현법 컴퓨터 내부 또는 컴퓨터 프로그램에서 사용하는 수치 데이터의 표현법 2.1 수의 진법 변환 (1) 컴퓨터 구조론
진법 변환 10진 변환 972 = 9 × 102 + 7 × 101 + 2 × 100 2진수 → 10진수 변환 11101(2)=1 × 24 + 1 × 23+ 1 × 22+ 0 × 21 + 1 × 20= 16 + 8 + 4 + 0 + 1= 29 2.1 수의 진법 변환 (2) 컴퓨터 구조론
10진수 → 2진수 변환 : 47를 이진수 변환 2 47 → 1 LSB2 23 → 12 11 → 12 5 → 12 2 → 0 1 ← MSB 즉, 10진수 47은 101111(2) 8진수 → 10진수 변환 456(8)= 4 × 82 + 5 × 81 + 6 × 80= 256 + 40 + 6= 302(10) 2.1 수의 진법 변환 (3) 컴퓨터 구조론
10진수 → 8진수 변환 : 266을 8진수로 8 266 → 2 LSB 8 33 → 1 4 ← MSB 즉, 10진수 266은 412(8) 8진수 → 2진수 변환 3567(8)을 2진수로 3 5 6 7 ← 8진수 ↓ ↓ ↓ ↓ 011 101 110 111 ← 2진수 즉, 3567(8) = 11101110111(2)이다. 2.1 수의 진법 변환 (4) 컴퓨터 구조론
2진수 → 8진수 변환 110000001100(2)를 8진수로 110000001100 ← 2진수 6 0 1 4 즉, 110000001100(2) = 6014(8)이다. 16진수 → 10진수 변환 2F5C(16)을 10진수변환 2F5C(16) = 2×163 + 15×162 + 5×161 + 12×160 = 12124(10) 즉, 2F5C(16) = 12124(10) 이다. 2.1 수의 진법 변환 (5) 컴퓨터 구조론
10진수 → 16진수 변환 284를 16진수 변환 16 388 → 4 LSB 16 24 → 8 1 ← MSB 즉, 284(10) = 184(16)이다. 16진수 → 2진수 변환 3F6A(16)을 2진수 변환 3 F 6 A ←16진수 ↓ ↓ ↓ ↓ 0011 1111 0110 1010 ← 2진수 즉, 3F6A(16)= 11111101101010(2)이다. 2.1 수의 진법 변환 (6) 컴퓨터 구조론
2진수 → 16진수 변환 1101000010100110(2)을 16진수로 변환 1101000010100110 ← 2진수 D 0 A 6 즉, 1101000010100110(2) = D0A6(16) 이다. 2.1 수의 진법 변환 (7) 컴퓨터 구조론
2.1 수의 진법 변환 (8) • 진법 연산 • 덧셈 연산 • 2진수 덧셈 8진수 덧셈 1011 7046 + 111 + 274 10010 7342 • 16진수 덧셈 10진수 덧셈 A5F5 1111 + 8D26 +1101 1331B 11100 컴퓨터 구조론
곱셈연산 111 × 110 000 111 111 101010 나눗셈 연산 11 11 1001 11 11 11 0 2.1 수의 진법 변환 (9) 컴퓨터 구조론
2.1 수의 진법 변환 (10) • 보수(complement) 연산 • 9의 보수 : 9에서 각 수를 뺀다. • 보수 감산 8 8 -3 → 3에 대한 9의 보수 → +6 5 ① 4 올림수 ①을 더함 → +1 5 8 8 -3 → 3에 대한 10의 보수 → +7 5 ① 5 올림수 ①은 버림 99 - 34 65 ← 34에 대한 9의 보수 컴퓨터 구조론
2.1 수의 진법 변환 (11) • 보수(complement) 연산 • 2진수 뺄셈 8 → 2 진수로 변환 → 1000 - 5 → 2 진수로 변환 → - 0101 3 11 8 1000 -5 → 1의 보수로 변환 → +1010 3 ①0010 올림수 ①을 더함 → +1 11 컴퓨터 구조론
2.2 수치 데이터의 표현 (1) • 고정 소수점 표현 • Half word(2Byte) • Full word(4Byte) • 부호비트 • 양수 : 0 • 음수 : 1 0 1 15 0 1 31 컴퓨터 구조론
2.2 수치 데이터의 표현 (2) • 고정 소수점 표현 • 컴퓨터에서의 정수표현 : 2진수 사용 • 부호있는 정수(signed integer) • 부호없는 정수(unsigned integer) • n-비트 정수의 표현 범위 • 부호있는 정수: +(2n-1-1) ~ -(2n-1) • 부호있는 정수: +(2n-1) ~ 0 컴퓨터 구조론
2.2 수치 데이터의 표현 (3) • 컴퓨터에서의 음의 정수 표현 방법 • 부호와 절대값 : 최상위 한 비트만 부호비트로 사용되고, 그 외의 비트는 2진수 값을 갖는다. • +6 : 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 • -6 : 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 • 1의 보수 : 부호와 절대값으로 표현된 값을 부호비트를 제외 한 나머지 비트들을 0은 1로, 1은 0로 변환한다. • -6 : 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 : 부호와 절대값 표현. • -6 : 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 : 1의 보수 표현. • 2의 보수 : 1의 보수방법으로 표현된 값의 최하위 비트에 1을 더한다. • -6 : 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 : 부호와 절대값 표현. • -6 : 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 : 1의 보수 표현. • -6 : 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 : 2의 보수 표현. 컴퓨터 구조론
2.2 수치 데이터의 표현 (4) • 10진수 데이터 • 4-bit BCD(8421) 코드를 사용하여 10진수 표현 • 표현 방법 • Packed 10 진수 – 1바이트에 2자리의 10진수를 저장 • Unpacked 10 진수 – 1바이트에 1자리의 10진수를 저장 컴퓨터 구조론
2.2 수치 데이터의 표현 (5) • 10진수 데이터 • 팩 10진법 형식 +1475 : 0000 0000 0000 0001 0100 0111 0101 1100 0 0 0 1 4 7 5 C -1475 : 0000 0000 0000 0001 0100 0111 0101 1101 0 0 0 1 4 7 5 D 1475 : 0000 0000 0000 0001 0100 0111 0101 1111 0 0 0 1 4 7 5 F 디지트(digit) 부호(1100,1101,1111) 1바이트 1바이트 1바이트 1바이트 컴퓨터 구조론
2.2 수치 데이터의 표현 (6) • 10진수 데이터 • 언팩 10진법 형식 +1475 : 1111 0001 1111 0100 1111 0111 1100 0101 F 1 F 4 F 7 C 5 -1475 : 1111 0001 1111 0100 1111 0111 1101 0101 F 1 F 4 F 7 D 5 1475 : 1111 0001 1111 0100 1111 0111 1111 0101 F 1 F 4 F 7 F 5 디지트(digit) 부호(1100,1101,1111) 1바이트 1바이트 1바이트 1바이트 컴퓨터 구조론
2.2 수치 데이터의 표현 (7) • 부동 소수점 표현 • 매우 큰 수나 매우 작은 수를 표현하기 위해 사용 • 지수 부분과 가수 부분을 구분하여 표현 • (0.0006543)10 = 6.543 × 10-4 • (0.0006543)10 = 6543.0 × 10-7 • (0.0006543)10 = 0.006543.0 × 10-1 • (0.0006543)10 = 0.6543 × 10-3 정규화 표현 • 표현 방법 • 단정도 부동 소수점(single-precision floating point number) • 32 bit(4바이트)를 사용하여 표현 • 배정도 부동 소수점(double-precision floating point number) • 64bit(8바이트)를 사용하여 표현 컴퓨터 구조론
2.2 수치 데이터의 표현 (8) • 부동 소수점 표현 31 (단정도) 소수점 위치 부호 63 (배정도) 컴퓨터 구조론
2.2 수치 데이터의 표현 (9) • 부동 소수점의 음수 표현 • -35.5 -23.816 0.23816 × 162 • 음수의 경우 지수에 바이어스(bias) 값 64을 더하여 저장 • (66)10 = (42)16 31 4 2 2 3 8 0 0 0 부호 소수 지수 컴퓨터 구조론
2.3 문자 데이터의 표현 (1) • BCD 코드(8421 코드) • 2진수 체계를 사용하면 고정 소수점표현, 부동 소수점표현 에 비해 많은 비트 수가 필요하며, 연산 속도 느리다. • 4비트 형태 : 10진수 0~9 까지 표현. • 보수를 구하기 어려움.(보완 => 3초과 , 2421, 84-2-1 코드) • 10진수의 각 자리가 그에 상응하는 2진수로 표현. 8 5 3 ← 10진수 => 9의 보수 1 4 6 ↓ ↓ ↓ ↓ ↓ ↓ 1000 0101 0011 ← BCD => 9의 보수 0001 0100 0110 컴퓨터 구조론
2.3 문자 데이터의 표현 (2) • 3-초과 코드(excess-3 code) • BCD 코드 + 0011 한다. • 덧셈의 경우 연산 결과에 0011을 뺀다. • 자리올림이 발생하면 0011을 각 자리에 더한다. 10진수 3-초과 코드 3 0110 (6) + 5 + 1000 (8) 8 1110 (14) - 0011 (3) 1011 (11) 컴퓨터 구조론
2.3 문자 데이터의 표현 (3) • 그레이 코드(Gray code) • 현 상태에서 다음 상태로 코드의 그룹들이 변화할 때 단지 하나의 비트만이 변화되는 최소변화코드(minimum-change code)의 일종. • 비트의 위치가 특별한 가중치를 가지지 않는 비가중치 코드 (unweighted code). • 산술 연산에 부적합. • 입/출력 장치와 A/D 변환기와 같은 응용 장치에 사용. 컴퓨터 구조론
2.3 문자 데이터의 표현 (4) • 알파뉴메릭 코드 • 26개의 대문자와 소문자, 10개의 숫자, 7개의 마크 그리고 +, /, #, %, * 등의 특수 문자로 이루어짐. • 컴퓨터 키보드에서 볼 수 있는 여러 가지 문자들이다. • ASCII(American Standard Code for Information Interchange) 코드 • 가장 널리 쓰이는 코드중의 하나. • 7비트 코드로서 128(27)개의 조합으로 이루어짐. 컴퓨터 구조론
2.3 문자 데이터의 표현 (5) • 에러 검출의 코드 • 에러 발생의 이유 • 신호감쇄 : 전송매체의 저항에 의한 신호의 세기 감소. • 지연 왜곡 : 전송 채널 및 전송 시스템의 비 선형적 특성 으로 인한 지연 왜곡. • 전기적 잡음 : 전송매체에서 발생하여 전송 신호에 추가 되는 불필요한 잡음. 컴퓨터 구조론
2.3 문자 데이터의 표현 (6) • 에러 검출의 코드 • 패리티 비트(parity bit) • 짝수 패리티 비트 1 1 0 0 0 1 0 1 ← ASCII의 E 첨가된 패리티 비트 • 홀수 패리티 비트 1 1 0 0 0 1 0 0 ← ASCII의 D 첨가된 패리티 비트 컴퓨터 구조론
2.3 문자 데이터의 표현 (7) • 에러 검출의 코드 • 해밍 코드(hamming code) • 패리티 비트를 정보의 수에 따라 필요한 수만큼 사용하여 그 코드 그룹의 적당한 장소에 놓고, 이 패리티 비트의 조합에 의하여 에러 검출 및 교정을 수행하게 하는 코드. • 2p ≥ m + p + 1 • M : 정보 비트의 수 • P : 패리티 비트수 컴퓨터 구조론
2.3 문자 데이터의 표현 (8) Ex) 정보 비트 = 4 23 ≥ 4 + 3 + 1 8 ≥ 8 m=4, p=3이므로 해밍코드는 m+p=7로서 7비트로 구성되며, 패리티 비트의 위치는 1,2,4,8…이다. • 해밍코드 구성도 컴퓨터 구조론