Programing/C++
[C++ 프로그래밍] 정수형 데이터와 Modifiers
유니얼
2024. 6. 21. 00:15
728x90
C++ 기초 프로그래밍: 정수형 데이터와 Modifiers
C++ 프로그래밍에서 정수형 데이터 타입은 매우 중요한 역할을 합니다. 다양한 크기와 특성을 가진 정수형 타입을 사용하여 프로그램의 메모리 사용을 최적화하고, 특정 요구사항에 맞는 정확한 데이터 처리를 할 수 있습니다. 이번 블로그 글에서는 C++에서 정수형 데이터 타입과 이들을 수정하는 데 사용되는 Integer Modifiers에 대해 알아보겠습니다.
정수형 데이터 타입
C++에서 정수형 데이터 타입은 기본적으로 int 타입을 포함하여, 크기와 부호(sign)에 따라 다양한 타입을 제공합니다. 각 타입은 특정한 크기와 범위를 가지며, 이를 통해 다양한 데이터 처리 요구를 충족시킬 수 있습니다.
기본 정수형 타입
- int: 기본 정수형 타입으로, 대부분의 컴파일러에서 4바이트를 차지합니다.
- short: 짧은 정수형 타입으로, 일반적으로 2바이트를 차지합니다.
- long: 긴 정수형 타입으로, 4바이트 또는 8바이트를 차지할 수 있습니다.
- long long: 더 긴 정수형 타입으로, 일반적으로 8바이트를 차지합니다.
부호가 있는 정수형 타입과 부호가 없는 정수형 타입
정수형 타입은 부호가 있는(signed) 타입과 부호가 없는(unsigned) 타입으로 나뉩니다.
- signed: 기본 정수형 타입으로, 양수와 음수를 모두 표현할 수 있습니다.
- unsigned: 부호가 없는 정수형 타입으로, 양수만을 표현할 수 있습니다. 이는 양수의 범위를 두 배로 확장할 수 있습니다.
예제 코드
다음은 다양한 정수형 데이터 타입과 그 크기를 출력하는 C++ 예제 코드입니다.
#include <iostream>
int main()
{
signed int value1{10};
signed int value2{-300};
std::cout << std::endl;
std::cout << "value1 : " << value1 << std::endl;
std::cout << "value2 : " << value2 << std::endl;
std::cout << "sizeof(value1) : " << sizeof(value1) << std::endl;
std::cout << "sizeof(value2) : " << sizeof(value2) << std::endl;
unsigned int value3{4};
// unsigned int value4{-5}; // Compiler error.
// short and long
short short_var{-32768}; // 2 Bytes
short int short_int{455}; //
signed short signed_short{122}; //
signed short int signed_short_int{-456}; //
unsigned short int unsigned_short_int{456};
int int_var{55}; // 4 bytes
signed signed_var{66}; //
signed int signed_int{77}; //
unsigned int unsigned_int{77};
long long_var{88}; // 4 OR 8 Bytes
long int long_int{33};
signed long signed_long{44};
signed long int signed_long_int{44};
unsigned long int unsigned_long_int{44};
long long long_long{888}; // 8 Bytes
long long int long_long_int{999};
signed long long signed_long_long{444};
signed long long int signed_long_long_int{1234};
unsigned long long int unsigned_long_long_int{1234};
std::cout << std::endl;
std::cout << "---------------------" << std::endl;
std::cout << std::endl;
std::cout << "Short variable : " << short_var << " , size : "
<< sizeof(short) << " bytes" << std::endl;
std::cout << "Short Int : " << short_int << " , size : "
<< sizeof(short int) << " bytes" << std::endl;
std::cout << "Signed short : " << signed_short
<< " , size : " << sizeof(signed short) << " bytes" << std::endl;
std::cout << "Signed short int : " << signed_short_int
<< " , size : " << sizeof(signed short int) << " bytes" << std::endl;
std::cout << "unsigned short int : " << unsigned_short_int
<< " , size : " << sizeof(unsigned short int) << " bytes" << std::endl;
std::cout << std::endl;
std::cout << "---------------------" << std::endl;
std::cout << std::endl;
std::cout << "Int variable : " << int_var << " , size : "
<< sizeof(int) << " bytes" << std::endl;
std::cout << "Signed variable " << signed_var << " , size : "
<< sizeof(signed) << " bytes" << std::endl;
std::cout << "Signed int : " << signed_int << " , size : "
<< sizeof(signed int) << " bytes" << std::endl;
std::cout << "unsigned int : " << unsigned_int << " , size : "
<< sizeof(unsigned int) << " bytes" << std::endl;
std::cout << std::endl;
std::cout << "---------------------" << std::endl;
std::cout << std::endl;
std::cout << "Long variable : " << long_var << " , size : "
<< sizeof(long) << " bytes" << std::endl;
std::cout << "Long int : " << long_int << " , size : "
<< sizeof(long int) << " bytes" << std::endl;
std::cout << "Signed long : " << signed_long << " , size : "
<< sizeof(signed long) << " bytes" << std::endl;
std::cout << "Signed long int : " << signed_long_int << " , size : "
<< sizeof(signed long int) << " bytes" << std::endl;
std::cout << "unsigned long int : " << unsigned_long_int << " , size : "
<< sizeof(unsigned long int) << " bytes" << std::endl;
std::cout << std::endl;
std::cout << "---------------------" << std::endl;
std::cout << std::endl;
std::cout << "Long long : " << long_long << " , size : "
<< sizeof(long long) << " bytes" << std::endl;
std::cout << "Long long int : " << long_long_int << " , size : "
<< sizeof(long long int) << " bytes" << std::endl;
std::cout << "Signed long long : " << signed_long_long << " , size : "
<< sizeof(signed long long) << " bytes" << std::endl;
std::cout << "Signed long long int : " << signed_long_long_int << " , size : "
<< sizeof(signed long long int) << " bytes" << std::endl;
std::cout << "unsigned long long int : " << unsigned_long_long_int << " , size : "
<< sizeof(unsigned long long int) << " bytes" << std::endl;
std::cout << std::endl;
std::cout << "---------------------" << std::endl;
return 0;
// value1 : 10
// value2 : -300
// sizeof(value1) : 4
// sizeof(value2) : 4
// ---------------------
// Short variable : -32768 , size : 2 bytes
// Short Int : 455 , size : 2 bytes
// Signed short : 122 , size : 2 bytes
// Signed short int : -456 , size : 2 bytes
// unsigned short int : 456 , size : 2 bytes
// ---------------------
// Int variable : 55 , size : 4 bytes
// Signed variable 66 , size : 4 bytes
// Signed int : 77 , size : 4 bytes
// unsigned int : 77 , size : 4 bytes
// ---------------------
// Long variable : 88 , size : 8 bytes
// Long int : 33 , size : 8 bytes
// Signed long : 44 , size : 8 bytes
// Signed long int : 44 , size : 8 bytes
// unsigned long int : 44 , size : 8 bytes
// ---------------------
// Long long : 888 , size : 8 bytes
// Long long int : 999 , size : 8 bytes
// Signed long long : 444 , size : 8 bytes
// Signed long long int : 1234 , size : 8 bytes
// unsigned long long int : 1234 , size : 8 bytes
// ---------------------
}
결론
C++에서 정수형 데이터를 초기화하는 방법과 다양한 정수형 데이터 타입의 크기를 이해하는 것은 매우 중요합니다. 적절한 데이터 타입을 선택함으로써 메모리 사용을 최적화하고, 데이터 처리의 정확성을 높일 수 있습니다.
반응형