본문 바로가기

BackEnd/C

정수 자료형

반응형

1. C언어의 정수 자료형의 크기


c언어의 표준에서는 각 자료형 별 크기가 딱 떨어지지않고 최소 몇 비트 이상이다 라고 표시되어 


있다. 컴파일러 별로 자료형의 크기가 달라질 수 있음을 의미한다. 그리고 


char <= short <= int <= long <= long long 순으로 비트의 크고 작음을 정리할수 있다.




2. 정수 자료형의 일반적인 크기


그런데 위는 어디까지나 C언어의 표준이고, 보통 우리가 사용하는 컴파일러는 정수 자료형의 크기를 아래와 같다.




3. 오버플로우,언더플로우


- 자료형의 범위를 벗어나면 오버플로우,언더플로우가 발생하므로 적절한 자료형을 선택해야 한다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(void)
{
    int n1 = +2147483647;
    int n2 = -2147483646;
 
    printf("오버플로우 발생 전: %d \n", n1);
    n1 = n1+100;  // 오버플로우 발생 - 표현 가능한 최고 값을 위로 초과한 상황
 
    printf("오버플로우 발생 후: %d \n\n", n1);
 
    printf("언더플로우 발생 전: %d \n", n2);
    n2 = n2-100;  // 언더플로우 발생 -표현 가능한 최저 값을 아래로 초과한 상황
 
    printf("언더플로우 발생 후: %d \n", n2);
        
    return 0;
}
cs


1
2
3
4
5
오버플로우 발생 전: 2147483647
오버플로우 발생 후: -2147483549
 
언더플로우 발생 전: -2147483646
언더플로우 발생 후: 2147483550
cs


3.  unsigned


unsigned를 붙이면 음의정수를 표현하지 않고 양의정수만 표현하는것이다.


정수 자료형의 이름 앞에만 붙일 있다 .

unsigned  붙여주면 표현 할 있는 값의 범위가 양의 정수 방향으로 2 이동.

맨 앞 부호비트를 없애고 그자리를 값의 크기를 결정하는데 사용






반응형