• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [C++ 프로그래밍] 자료형의 범위와 한계
    2024년 07월 07일
    • 유니얼
    • 작성자
    • 2024.07.07.:53
    728x90

    C++ 기초 프로그래밍: 자료형의 범위와 한계

    C++ 프로그래밍에서 각 자료형의 범위와 한계를 이해하는 것은 매우 중요합니다. 자료형의 범위를 초과하는 값을 저장하면 예기치 않은 결과가 발생할 수 있기 때문입니다. C++ 표준 라이브러리의 <limits> 헤더를 사용하면 각 자료형의 최소값과 최대값을 쉽게 확인할 수 있습니다. 이번 블로그 글에서는 <limits> 헤더를 사용하여 다양한 자료형의 범위를 출력하는 방법에 대해 알아보겠습니다.

    <limits> 헤더

    <limits> 헤더는 C++에서 각 자료형의 다양한 특성을 정의한 템플릿 클래스인 std::numeric_limits를 제공합니다. 이를 사용하면 특정 자료형의 최소값, 최대값, 최저값 등의 정보를 얻을 수 있습니다.

    예제 코드

    다음 예제 코드는 여러 자료형의 범위와 한계를 출력하는 방법을 보여줍니다:

    #include <iostream>
    #include <limits>
    
    int main()
    {
        // 각 타입의 범위 출력
        std::cout << "The range for short is from " << std::numeric_limits<short>::min() << " to "
                  << std::numeric_limits<short>::max() << std::endl;
    
        std::cout << "The range for unsigned short is from " << std::numeric_limits<unsigned short>::min() << " to "
                  << std::numeric_limits<unsigned short>::max() << std::endl;
    
        std::cout << "The range for int is from " << std::numeric_limits<int>::min() << " to "
                  << std::numeric_limits<int>::max() << std::endl;
    
        std::cout << "The range for unsigned int is from " << std::numeric_limits<unsigned int>::min() << " to "
                  << std::numeric_limits<unsigned int>::max() << std::endl;
    
        std::cout << "The range for long is from " << std::numeric_limits<long>::min() << " to "
                  << std::numeric_limits<long>::max() << std::endl;
    
        std::cout << "The range for float is from " << std::numeric_limits<float>::min() << " to "
                  << std::numeric_limits<float>::max() << std::endl;
    
        // lowest()를 사용한 float 타입 범위 출력
        std::cout << "The range(with lowest) for float is from " << std::numeric_limits<float>::lowest() << " to "
                  << std::numeric_limits<float>::max() << std::endl;
    
        // lowest()를 사용한 double 타입 범위 출력
        std::cout << "The range(with lowest) for double is from " << std::numeric_limits<double>::lowest() << " to "
                  << std::numeric_limits<double>::max() << std::endl;
    
        // lowest()를 사용한 long double 타입 범위 출력
        std::cout << "The range(with lowest) for long double is from " << std::numeric_limits<long double>::lowest() << " to "
                  << std::numeric_limits<long double>::max() << std::endl;
    
        // 기타 정보 출력
        std::cout << "int is signed : " << std::numeric_limits<int>::is_signed << std::endl; // int 타입이 부호를 가지는지 여부 출력
        std::cout << "int digits : " << std::numeric_limits<int>::digits << std::endl;       // int 타입의 이진수 자릿수 출력
    
        return 0;
    }
    

    출력 결과

    위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

    The range for short is from -32768 to 32767
    The range for unsigned short is from 0 to 65535
    The range for int is from -2147483648 to 2147483647
    The range for unsigned int is from 0 to 4294967295
    The range for long is from -9223372036854775808 to 9223372036854775807
    The range for float is from 1.17549e-38 to 3.40282e+38
    The range(with lowest) for float is from -3.40282e+38 to 3.40282e+38
    The range(with lowest) for double is from -1.79769e+308 to 1.79769e+308
    The range(with lowest) for long double is from -1.18973e+4932 to 1.18973e+4932
    int is signed : true
    int digits : 31
    

    예제 분석

    자료형의 범위:

    • std::numeric_limits<자료형>::min()과 std::numeric_limits<자료형>::max()를 사용하여 각 자료형의 최소값과 최대값을 출력합니다.
    • short, unsigned short, int, unsigned int, long, float, double, long double의 범위를 출력합니다.

    float, double, long double의 최저값:

    • std::numeric_limits<자료형>::lowest()를 사용하여 해당 자료형의 최저값을 출력합니다. 이는 양수 범위의 최소값인 min()과는 다릅니다.

    기타 정보:

    • std::numeric_limits<int>::is_signed를 사용하여 int 자료형이 부호를 가지는지 여부를 출력합니다.
    • std::numeric_limits<int>::digits를 사용하여 int 자료형의 이진수 자릿수를 출력합니다.

    결론

    C++에서 각 자료형의 범위와 한계를 이해하는 것은 프로그램의 정확성과 안정성을 높이는 데 중요합니다. <limits> 헤더를 사용하면 각 자료형의 최소값, 최대값, 최저값 등의 정보를 쉽게 얻을 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바