ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++ 변수 (2)
    C++ 2025. 3. 17. 17:54

     

    #include <iostream>
    #include <climits>
    
    using namespace std;
    
    int main() {
    
        int n_int = INT_MAX;
        short n_short = SHRT_MAX;
        long n_long = LONG_MAX;
        long long n_llong = LLONG_MAX;
    
        cout << "int는 " << sizeof n_int << "바이트이다." << endl;
        cout << "이 바이트의 최대값은 " << n_int << "이다." << endl;
    
        cout << "short은 " << sizeof n_short << "바이트이다." << endl;
        cout << "이 바이트의 최대값은 " << n_short << "이다." << endl;
    
        cout << "long은 " << sizeof n_long << "바이트이다." << endl;
        cout << "이 바이트의 최대값은 " << n_long << "이다." <<endl;
    
        cout << "long long은 " << sizeof n_llong << "바이트이다." << endl;
        cout << "이 바이트의 최대값은 " << n_llong << "이다." <<endl;
    
        
        return 0;
    }

    먼저 실행 결과는 다음과 같다.

    먼저 climits은 C++에서 정수형 데이터 타입의 최솟값과 최대값을 정의한 헤더 파일이다.

    정수형은 소수부가 없는 수이며, 음의 정수, 0 , 양의 정수로 구성된다.

    위 4가지의 자료형 모두 정수형으로 사용하지만, 상황에 따라 변수에 맞는 자료형을 사용하는 것이 메모리 관리에 효율적이다.

    short형을 예로 들면, 값의 범위가 -32768 ~ 32767까지가 범위이다. 

    unsigned는 번역하면 '부호가 없는' 이라는 뜻으로,  음의 정수는 저장하지 않는다는 것을 의미한다.

    단, 그만큼 양의 정수를 저장할 수 있는 범위가 넓어진다.

    결과값을 보면 short의 최대값은 32767이라고 나오지만, 앞에 unsigned를 붙여 선언하게 되면 0 ~ 65535 까지 저장할 수 있다.

    만약 결과값이 자료형의 최대값 보다 크다면 overflow로인해 엉뚱한 값이 출력될 것이다.

    #include <iostream>
    #include <climits>
    
    using namespace std;
    
    int main() {
    
        short a = 55555;
        cout << "a 값 : " << a << endl;
        
        return 0;
    }

    위 코드의 실행 결과이다. 앞서 말한거처럼 a의 최대값은 32767인데 a값은 55555이기때문에 엉뚱한 값이 출력됐다.

    이 값을 출력하기 위해 더 넓은 범위를 가진 int형으로 자료형을 바꾸거나, short앞에 unsigned를 붙이면 된다.

    추가로 실수형은 소수부가 있는 수로

    #include <iostream>
    #include <climits>
    
    using namespace std;
    
    int main() {
    	float a = 3.14;
    	int b = 3.14;
    
    	cout << a << " " << b << endl;
    
    	return 0;
    }

    출력하면 3.14 , 3이 출력될 것이다. int는 정수형이기 때문이다.

    'C++' 카테고리의 다른 글

    C++ 배열과 char 문자열  (0) 2025.03.18
    C++ 변수 (4)  (0) 2025.03.17
    C++ 변수 (3)  (0) 2025.03.17
    C++ 변수 (1)  (0) 2025.03.17
    C++ <iostream> 전처리 지시자  (0) 2025.03.17
Designed by Tistory.