#include <limits.h>

Subin·2024년 10월 8일

Algorithm

목록 보기
43/69

<limits.h>는 C와 C++에서 사용하는 헤더 파일로, 데이터 타입의 크기나 값의 범위와 관련된 상수들을 정의하고 있다. 이 헤더 파일을 통해 각 데이터 타입의 최대값과 최소값을 얻을 수 있으며, 이를 이용해 프로그램에서 다양한 계산을 안전하게 처리할 수 있다.

INT_MAX란?

INT_MAXint형 변수로 표현할 수 있는 가장 큰 값을 나타낸다.

  • C와 C++에서 int형 변수는 4바이트(32비트) 크기를 갖는 것이 일반적이며, 이때 INT_MAX2,147,483,647이다.
  • 즉, 32비트 정수형에서 부호가 있는 경우 사용할 수 있는 최대값은 2^31 - 1이고, 이 값이 INT_MAX로 정의된다.

INT_MAXlimits.h에서 다음과 같이 정의되어 있다:

#define INT_MAX 2147483647

INT_MAX를 사용할 때는, 어떤 값이 정수형의 범위를 벗어나는지, 또는 알고리즘에서 최소값을 찾아야 할 때 초기 값을 설정하는 용도로 자주 사용된다.

<limits.h>에서 제공하는 상수들

<limits.h>INT_MAX 외에도 다양한 데이터 타입에 대한 최소값과 최대값을 정의하고 있다. 여기에는 다음과 같은 상수들이 포함된다:

  • CHAR_BIT: char 타입이 차지하는 비트 수 (일반적으로 8비트)
  • SCHAR_MIN: signed char 타입의 최소값 (-128)
  • SCHAR_MAX: signed char 타입의 최대값 (127)
  • UCHAR_MAX: unsigned char 타입의 최대값 (255)
  • SHRT_MIN: short 타입의 최소값 (-32,768)
  • SHRT_MAX: short 타입의 최대값 (32,767)
  • USHRT_MAX: unsigned short 타입의 최대값 (65,535)
  • INT_MIN: int 타입의 최소값 (-2,147,483,648)
  • INT_MAX: int 타입의 최대값 (2,147,483,647)
  • UINT_MAX: unsigned int 타입의 최대값 (4,294,967,295)
  • LONG_MIN: long 타입의 최소값
  • LONG_MAX: long 타입의 최대값
  • ULONG_MAX: unsigned long 타입의 최대값

사용 예

INT_MAX를 사용하는 대표적인 예는 알고리즘에서 최대값을 갱신하는 부분이다. 예를 들어, 어떤 값 중 최소값을 찾는 알고리즘을 구현할 때, 처음에 min 변수를 매우 큰 값인 INT_MAX로 초기화한 후, 각 값과 비교하여 더 작은 값을 찾는다.

#include <iostream>
#include <limits.h>

int main() {
    int minValue = INT_MAX;
    int numbers[] = {5, 3, 8, 2, 10};

    for (int num : numbers) {
        if (num < minValue) {
            minValue = num;
        }
    }

    std::cout << "The minimum value is: " << minValue << std::endl; // 출력: 2
    return 0;
}

위 예제에서는 minValue를 처음에 INT_MAX로 설정한 뒤, 배열의 값들을 순차적으로 비교하여 그 중 가장 작은 값을 찾는다.

profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글