삽질의 현장/- C

[Surro] :: C언어 이론 01-02. 데이터 표현방식 및 자료형 기본

shovelman 2013. 10. 6. 22:17

1. 데이터 표현 방식의 이해

 

>정수의 표현 방식

:모든 정수의 가장 왼쪽에 있는 비트는 부호 비트이다. (양수 = 0, 음수 = 1)

:가장 왼쪽 비트를 제외한 나머지 비트들은 데이터 크기를 나타낸다.

ex)

0(부호의 표현)0000000(데이터 크기 표현)

 

+음수를 표현할 때에는 2의 보수 체계를 기억해야 한다.

:1의 보수를 취한다. > 1을 더한다

ex)

00000101 (+5)

11111010 (1의 보수를 취한다)

11111011 (1을 더한다) >> -5

+컴퓨터가 실수를 표현하는 방식은 오차를 지닌다.

:넓은 범위의 실수를 표현할 수 있다는 장점과 더불어 오차가 존재한다는 단점도 지닌다.

 

>비트 단위 연산

:& (AND) : 두 개의 비트가 모1일 때 1을 반환

 | (OR) : 두 개의 비트 중 하나라도 1이면 1을 반환

 ^ (XOR) : 두 개의 비트가 서로 다른 경우에 1을 반환

 ~ (NOT) : 보수 연산

 <<(왼쪽으로 이동)

 >>(오른쪽으로 이동)

2. 상수와 기본 자료형

-자료형이란? : 선언할 변수의 특징을 나타내기 위한 키워드

 

+정수형

char 1byte

short 2byte

int 4byte

long 4byte

 

+실수형

float 4byte

double 8byte

 

+많은 수의 자료형을 제공하는 이유?

:데이터의 표현 방식이 다르기 때문

:메모리 공간을 적절히 사용하기 위해서

 

+sizeof연산자

:단항 연산자로서 피연산자의 메모리 크기를 반환한다.

ex)

int main(void)

{

int val = 10;

printf("%d",sizeof val); // 변수 val의 메모리 크기 출력

printf("%d",sizeof(int)); // 자료형 int의 메모리 크기 출력

........

 

+자료형 선택하기

-정수형 데이터를 처리하는 이유

:컴퓨터는 내부적으로 int형 데이터를 가장 빠르게 연산(처리)하기 때문

 

-실수형 데이터를 처리하는 경우

:정밀도

 

+unsigned

:+,-의 기준이 사라지게 되고 표현되는 모든 값은 양수가 된다

 

+ASCII

:'0' - 48

'A' - 65

'a' - 97

 

+리터럴(literal) 상수

:이름을 지니지 않는 상수

 

 

>자료형 변환

:데이터의 표현 방식을 바꾼다

:자동 형 변환(묵시적 형 변환), 강제 형 변환(명시적 형 변환)

 

+자동 형 변환

:값의 표현 범위가 넓은 데이터로의 형 변환은 아무런 문제가 발생하지 않는다.

 

+강제 형 변환

:원래의 자료형 보다 작은 자료형으로 형 변환을 하게 된다면 데이터 손실이 발생한다.

그래서 강제 형 변환을한다.

ex)

int main(void)

{

int a = 1;

int b = 2;

 

float f = (float)a / b;

......

<참조 : C 열혈강의>