c 정수형 최댓값 최솟값 표현

떵떵·2022년 5월 15일
0

c언어를 사용중 우리가 자료형의 최댓값과 최솟값을 사용하여야 할때 직접 -2,147,483,648으로 값을 직접 넣기엔 불편하거나 에러가 발생할 수 있다.
이럴때 사용할 수 있는 방법은 아래와 같다

#include <limits.h>
int main()
{
	int num1 = INT_MIN;           //int의 최솟값
    char num2 = CHAR_MIN;		  //char의 최솟값
    short num3 = SHRT_MIN;		  //short의 최솟값
    long num4 = LONG_MIN;		  //long의 최솟값
    long long num5 = LLONG_MIN;   //long long의 최솟값
    
    
    
}

위는 자료형의 최솟값을 구하는 코드이다.
해당 방식을 사용하기 위해서는 꼭 자료형의 최댓값과 최솟값이 정의된 헤더파일인 - #include <limits.h>를 선언 해줘야 한다

위의 보기는 모두 자료형의 최솟값을 구하는 식이지만
최댓값은 반대로 MIN대신 MAX를 써주면 된다.

ex) INT_MIN -> INT_MAX

unsigned 자료형

위의 예시들은 모두 signed 자료형인데 unsigned에 해당하는 식도 있다.

unsigned char -> UCHAR_MAX

unsigned short - > USHRT_MAX

unsigned int -> UINT_MAX

unsigned long -> ULONG_MAX

unsigned long long -> ULLONG_MAX

unsigned는 부호없는 정수로서 공통적으로 최솟값 0을 가지므로 따로 MIN은 없다.

overflow, underflow

위의 식을 이용하여 오버플로우랑, 언더플로우 둘다 발생시킬 수 있다.

overflow
ex) int num1 = INT_MAX + 1;
ex) unsigned short num2 = SHRT_MAX + 1;

underflow
ex) long num3 = LONG_MIN - 1;
ex) unsigned char num4 = 0 - 1;

0개의 댓글