본문 바로가기

프로그램언어/C언어

c언어 오버플로우(overflow)와 언더플로우(underflow), 상수, 형변환

1. 오버플로우와 언더플로우

short자료형 변수는 표현 할 수 있는 정수 범위가 -32768부터 32767까지입니다. 정수형 변수에 들어갈 범위가 있기 때문에 산술연산시 그 범위를 넘어갈 수 있습니다. 이 때 최대값을 범위 위로 벗어나는 연산이 이루어지면 이것을 "오버플로우"라고 하고 최소값의 범위 아래로 벗어나면 "언더플로우"라고 합니다.

예제를 통해 확인해 보겠습니다.

소스코드 결과
    #include 

    int main()
    {
        short a = 32767;   // short 최대값
        short b = -32768;  // short 최소값

        a = a + 2;
        b = b - 2;

        printf("overflow : %d\n", a);
        printf("underflow : %d\n", b);

        return 0;
    }

    overflow : -32767

    underflow : 32766

2. 상수

상수는 그 값이 변하지 않는 데이터를 의미합니다.  예를 들어 10은 정수 상수이고 , 3.14는 실수 상수이고, 'A'는 문자상수 이고, "ABC"은 문자열 상수라고 합니다.

 

#define 으로 매크로 상수 지정

매크로 상수는 일반 변수와 구분하기 위해 대문자로 선언하고 그 행의 끝에 세미콜론을 입력하지 않는다.

    #define MAX 100

매크로 상수 MAX에 100으로 지정합니다.

 

const 예약어로 변수를 상수화

변수 선언 앞에 const를 붙이면 변수를 상수로 변환하라는 명령어 입니다.

    const int a = 100;

 

3. 형 변환

여러 가지 자료형 사이에서 연산을 수행하기 위해서 자료형의 변환이 필요하다. 이때 서로 다른 자료형으로 변화되는 것을 형변환이라고 한다. 다른 말로는 캐스트 연산자라고 부른다.

 

소스코드 결과
    #include 

    int main()
    {
        int a = 5;
        int b = 2;
        float c;

        c = a / b;
        printf("형 변환하기전 : %f\n", c);

        c = (float)a / b;
        printf("형 변환후 : %f\n", c);

        return 0;
    }

    형 변환하기전 : 2.000000

    형 변환후 : 2.500000

 

'프로그램언어 > C언어' 카테고리의 다른 글

c언어 선택문 (if, switch)  (0) 2019.10.01
c언어 연산자의 종류  (0) 2019.10.01
c언어 Scanf()함수  (0) 2019.09.30
c언어 변수 선언과 자료형의 종류  (0) 2019.09.27
C언어 printf()함수  (0) 2019.09.26