@ 자료형은 데이터의 표현방식을 결정. 자료형을 나누는 기준 1 - 표현할 데이터의 종류, 기준 2 - 바이트 크기

@
 정수 자료형  크기   값의 표현범위 
 char  8비트  -128이상 127이하
 short  16비트  -32,768 ~ 32,767
 int  32비트  - 2,147,483,648 ~ 2,147,483,647
 long  32비트  - 2,147,483,648 ~ 2,147,483,647
 long long  64비트  - 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

@ short를 대신해서 short int를, long을 대신해서 long int를 그리고 long long을 대신해서 long long int를 사용할 수 있다. 이는 같은 표현이다. 그러나 보편적으로 int가 생략된 형태로 사용한다.

@ 언더플로우(underflow) :  변수에 범위보다 더 작은값이 저장되는 상황( 인트형 변수에 - 2,147,483,648 보다 작은값)

@ 오버플로우(overflow) : 변수에 범위보다 더 큰값이 저장되는 상황( 인트형 변수에  2,147,483,647 보다 큰 값)

@ 언더플로우나 오버플로우가 발생하면 부호도 바뀌고 숫자도 엉뚱한 값이 나온다. 어차피 이 둘의 결과는 쓸모가 없다.

@ 정수 자료형에서 unsigned를 붙여주면 양의 정수만 표현할 수 있는 자료형이 되어 범위가 두배로 늘어난다. 부호를 결정하던 가장 왼쪽의 비트(MSB)가 단순히 값의 크기를 결정하는데 사용이 된다. 또 자료형 앞에 signed를 붙일 수 있으며 int와 signed int는 같은 것이어서 보통 생략을 한다.

@ char형인 경우 가끔 char를 unsigned char로 처리하는 컴파일러도 있기에 예외가 발생할 수 있음을 인지. 보통은 char를 signed char로 처리하는 컴파일러임


Posted by Taoist
,