컴퓨더 내부에서 자료를 표현하는 방법
수치자료의 표현 |
- 10진수의 표현
* 존(Zone) 형식의 표현
10진수 한자리를 표현하기 위해 1byte(8bits)를 사용한다.
존영역과 수치영역으로 구분되는데, 존영역에는 부호(음수,양수)와 관련된 정보가 들어가고, 수치영역에는 10진수한자리가 들어간다.
수치영역이 4bits인 이유는 10진수 한자리 즉, 0~9를 표현하기위해 적어도 10개를 구분할수있는 자리가 있어야 하기 때문이다.
3bits는 2^3=8개로 부족하므로 4bits 2^4=16 을 쓴다.
최하위 존영역(S:sign비트-부호비트)빼고 다른 존영역에는 모두 1111(16진수F)가 들어간다.
S에는 1100(16진수C)- 양수일때 / 1101(16진수D) - 음수일때
가 들어간다.
존영역에서 16진수의 A~F를 쓰는이유는 수치영역에서 0~9까지 사용하므로 존영역과 수치영역을 구분하기 쉽도록 하기 위함이다.
*팩(Pack) 형식의 표현
존형식에서 중복되는 존영역(1111) 때문에 생기는 메모리 낭비를 막기위해 최하위 sign비트만 남긴 방식이다.
- 2진수의 정수 표현
* n비트 부호 절댓값 형식
최상위 1비트(부호비트)빼고 나머지 비트에 이진수를 표현하는 방식
ex) 1 0 0 1 0 1 0 1 -------부호비트:1 절대값:21 --> (-21)
문제점: 뺄셈을 할수 없음.
* 1의 보수(1' Complement)형식
음수의 표현에서 부호 비트를 사용하는 대신 1의 보수를 사용하는 방법, 양수의 표현은 부호 절댓값 형식과 동일.
ex) 0 0 0 1 0 1 0 1 ---->(+21)
1 1 1 0 1 0 1 0 ----->(-21)
문제점: 뺄셈을 할수 없음.
* 2의 보수(2' Complement)형식
뺄셈이 가능하도록 만들어진 방식.
음수의 표현에서 부호 비트르 사용하는 대신 2의 보수를 사용하는 방법.
1의 보수에 1을 더해준다.
ex) 5 - 3
0101 ->(+5)
0011 ->(+3)
1100+0001 = 1101 ->(-3)
0101
+ 1101
--------------
0010
- 2진수의 실수 표현
* 고정 소수점 표현
소수점이 항상 왼쪽에 있다고 생각.
ex) 011 ==> 0.011
단점: 표현범위 작음
* 부동 소수점 형식의 표현
고정 소수점 형식에 비해 표현 범위가 넓다.
ex) 342 = 0.342 X 10^3
0.342 : 소수부
10: 밑수
3: 지수
밑수는 항상 10으로 일정하므로 부호, 소수부, 지수만 저장하여 사용한다.
4byte 부동소수점 표시 방식
문자 자료의 표현 |
- BCD 코드
6비트를 사용하여 문자를 표현하는 방식. 상위 2비트(존비트), 하위 4비트(2진수 비트)
존비트: 00(0~9), 01(영어대문자 A~I), 10(영어대문자 J~R), 11(영어대문자 S~Z)
단점: 소문자 표현 불가
- EBCDIC 코드
8비트를 사용하여 문자를 표현하는 방식. 상위 4비트(존비트), 하위 4비트(2진수 비트)
단점: 메모리낭비, 빈자리가 많음
- ASCII 코드
7bits를 사용하여 문자를 표현하는 방식. 상위 3비트(존 비트), 하위 4비트(2진수 비트)
EBCDIC 코드의 빈자리를 없앰으로서 메모리를 최적으로 사용.
논리자료의 표현 |
논리값을 표현하기 위한 자료형식.
논리값은 참아니면 거짓.
프로그램은 0빼고 모두 참으로 인식.
포인터 자료의 표현 |
메모리의 주소르 표현하기 위한 자료 형식.
포인터를 저장하기위한 변수의 크기는 모두 int와 같은 4bytes크기이나 주소인지 단순히 데이터인지 구분하기위해 포인터 변수를 사용한다.
int *
char *
float *
모두 크기가 4byte이지만 통일해서 쓰지않고 구분해서 쓰는 이유는
포인터 변수에는 맨 처음 주소만 저장되는데 int, char, float마다 크기가 다르므로 첫주소에서 부터 어디까지 데이터가 있는지 알아야 하기때문이다.
문자열 자료의 표현 |
String . 배열을 이용한 표현.
apple이라는 문자열을 배열에 저장했다면, a p p l e \0이 차례대로 들어간다.
문자열의 끝을 알려주는 null문자(\0) 이 들어가야하므로 배열을 한칸더크게 선언해야한다.
배열의 크기는 6이나, 문자열길이(strlen)은 5이다.
'FALL in > G.MA' s 자료구조' 카테고리의 다른 글
2.소프트웨어와 자료구조 - 소프트웨어 생명주기 (0) | 2016.04.10 |
---|---|
1.자료구조의 개요(1) (0) | 2016.03.08 |