2장. 데이터의 표현 Lecture #2
2.1 수의 진법 변환 (1) 수치 데이터 – 진법(base) 10 진수 2 진수 8 진수 16 진수 일상 생활에서 주로 사용하는 수치 데이터의 표현법 컴퓨터 내부 또는 컴퓨터 프로그램에서 사용하는 수치 데이터의 표현법 MSB는 5번째 비트이나 가중치가 24이고, LSB는 첫 번째 비트이나 가중치가 20임에 주의. 컴퓨터 구조론
2.1 수의 진법 변환 (2) 진법 변환 2진수 → 10진수 변환 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 MSB는 5번째 비트이나 가중치가 24이고, LSB는 첫 번째 비트이나 가중치가 20임에 주의. 컴퓨터 구조론
2.1 수의 진법 변환 (3) 10진수 → 2진수 변환 : 47를 이진수 변환 2 47 → 1 LSB 2 23 → 1 2 11 → 1 2 5 → 1 2 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 수의 진법 변환 (4) 10진수 → 8진수 변환 : 즉, 10진수 266은 412(8) 8진수 → 2진수 변환 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 수의 진법 변환 (5) 2진수 → 8진수 변환 즉, 110000001100(2) = 6014(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 수의 진법 변환 (6) 16진수 → 2진수 변환 10진수 → 16진수 변환 3F6A(16)을 2진수 변환 3 F 6 A ←16진수 ↓ ↓ ↓ ↓ 0011 1111 0110 1010 ← 2진수 즉, 3F6A(16) = 11111101101010(2)이다. 10진수 → 16진수 변환 284를 16진수 변환 16 388 → 4 LSB 16 24 → 8 1 ← MSB 즉, 284(10) = 184(16)이다. 컴퓨터 구조론
2.1 수의 진법 변환 (7) 2진수 → 16진수 변환 즉, 1101000010100110(2) = D0A6(16) 이다. 1101000010100110(2)을 16진수로 변환 1101000010100110 ← 2진수 D 0 A 6 즉, 1101000010100110(2) = D0A6(16) 이다. 컴퓨터 구조론
2.1 수의 진법 변환 (8) 진법 연산 덧셈 연산 2진수 덧셈 8진수 덧셈 1011 7046 + 111 + 274 2진수 덧셈 8진수 덧셈 1011 7046 + 111 + 274 10010 7342 16진수 덧셈 10진수 덧셈 A5F5 1111 + 8D26 +1101 1331B 11100 컴퓨터 구조론
2.1 수의 진법 변환 (9) 곱셈연산 111 × 110 000 101010 나눗셈 연산 11 11 1001 컴퓨터 구조론
2.1 수의 진법 변환 (10) 보수(complement) 연산 9의 보수 : 9에서 각 수를 뺀다. 보수 감산 8 8 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) 8 → 2 진수로 변환 → 1000 보수(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 부호비트 2진수 데이터 0 1 31 부호비트 2진수 데이터 컴퓨터 구조론
2.2 수치 데이터의 표현 (2) 고정 소수점 표현 컴퓨터에서의 정수표현 : 2진수 사용 n-비트 정수의 표현 범위 부호있는 정수(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 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바이트 D S 컴퓨터 구조론
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바이트 F D S 컴퓨터 구조론
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) 부동 소수점 표현 S 지수부분 소수부분 S 지수부분 소수부분 17 8 17 8 31 17 8 S 지수부분 소수부분 31 (단정도) 소수점 위치 부호 17 8 S 지수부분 소수부분 63 (배정도) 컴퓨터 구조론
2.2 수치 데이터의 표현 (9) 부동 소수점의 음수 표현 1 100 0010 0011 1000 0000 -35.5 -23.816 0.23816 × 162 음수의 경우 지수에 바이어스(bias) 값 64을 더하여 저장 (66)10 = (42)16 17 8 1 100 0010 0011 1000 0000 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 BCD 코드는 10진수 한 자리수를 2진수 4비트로 표현하며 0-9까지 숫자만을 사용하며, 그 이상의 4비트 인수(1010, 1011, 1100, 1101, 1110, 111)는 사용하지 않으며 만약 이것이 기술된다면 오류가 발생하게 된다. 컴퓨터 구조론
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) 3-초과 코드는 BCD 코드와 많은 연관성을 가지고 있으며, 특별한 연산에서 사용한다. 10진수에 있어서 3-초과 코드는 2진수로 변환되기 전에 3이 가산되어 사용된다는 점을 제외하고는 BCD와 동일하다. 계산된 결과에서 1110은 10진수 8의 6-초과 값이므로 계산된 값에서 3(0011)을 빼야 한다. 컴퓨터 구조론
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) 에러 검출의 코드 에러 발생의 이유 신호감쇄 : 전송매체의 저항에 의한 신호의 세기 감소. 지연 왜곡 : 전송 채널 및 전송 시스템의 비 선형적 특성 으로 인한 지연 왜곡. 전기적 잡음 : 전송매체에서 발생하여 전송 신호에 추가 되는 불필요한 잡음. 신호 감쇠 : 증폭기(analog), 리피터(digital)을 설치하여 해결 지연 왜곡 : 전송 매체를 통하여 전달되는 신호의 전송속도가 주파수에 따라 차이가 나는 것이 지연 왜곡 컴퓨터 구조론
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…이다. 해밍코드 구성도 H.C H1 H2 H3 H4 H5 H6 H7 Bit P1 P2 D1 P3 D2 D3 D4 2진수 0001 0010 0011 0100 0101 0110 0111 컴퓨터 구조론