1 분 소요

이 글은 패스트캠퍼스 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

int 크기

#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
}

태그:

카테고리:

업데이트:

댓글남기기