[C++] Int 정수형
이 글은 패스트캠퍼스 C++ 실력 완성 올인원 패키지 Online.를 보고 따라 만들면서 헷갈리는 부분을 정리한 글입니다.
정수형 Int
다른 언어에서와 마찬가지로 딱 나누어 떨어지는 정수형을 담는 변수이다.
초기화
다음 방법처럼 초기화 할 수 있다.
int x = 1, y(2);
여러 진수로 대입
숫자 앞에 표시하여 여러 진수로 대입할 수 있음
#include <iostream>
using namespace std;
int main()
{
int num1 = 11; // 10진수 (아무것도 안붙임)
int num2 = 011; // 8진수 (0을 붙임)
int num3 = 0b11; // 2진수 (0b를 붙임)
int num4 = 0x11; // 16진수 (0x를 붙임)
cout << num1 << endl; // 11
cout << num2 << endl; // 7 + 1 = 9
cout << num3 << endl; // 2 + 1 = 3
cout << num4 << endl; // 16 + 1 == 17
}
// 출력 결과
//11
//9
//3
//17
정수형 타입을 명시하여 대입
숫자 뒤에 문자를 붙여서 어떤 정수형 타입인지 명시
해줄 수 있다.
U를 붙여서 unsigned 형인지 알려줄 수 있고, L을 붙여 long 타입의 형인지 알려줄 수 있다.
이렇게 직접 명시해서 대입하면 내부적으로 따로 형변환이 이뤄지지 않아 약간의 성능 이득을 볼 수 있다.
unsigned int a = 11U;
long int longNum = 0L;
long long int longlongNum = 0LL;
unsigned long long ulongLongNum = 0ULL;
실행 환경별로 달라지는 크기
어느 환경에서 실행하냐에 따라서 크기가 달라질 수 있다.
int/long int/int pointer
#include <iostream>
using namespace std;
int main()
{
int intNum = 0;
long longNum = 0;
int* intPointer = &intNum;
// 크기가 달라진다
cout << sizeof(intNum) << endl;
cout << sizeof(longNum) << endl;
cout << sizeof(intPointer) << endl;
}
만약 진행하는 프로젝트가 이렇게 크기가 변하는 경우에 대해 민감할 경우 고정된 크기를 가지는 int
를 사용할 수 있다.
#include <iostream>
using namespace std;
int main()
{
int8_t num1 = 0;
int16_t num2 = 0;
int32_t num3 = 0;
int64_t num4 = 0;
cout << sizeof(num1) << endl; // 1
cout << sizeof(num2) << endl; // 2
cout << sizeof(num3) << endl; // 4
cout << sizeof(num4) << endl; // 8
}
댓글남기기