C++ FUNDAMENTAL TYPES

타입은 메모리 크기, 표현 범위, 연산 규칙을 함께 정한다

C++에서 타입은 단순한 이름이 아니라 컴파일러가 값을 어떻게 저장하고 해석할지 정하는 계약이다. 정수는 크기와 부호, 실수는 정밀도, 문자는 인코딩 관점으로 읽으면 기준이 잡힌다.

정수 타입은 바이트 폭과 부호로 읽는다

정확한 크기는 환경에 따라 다를 수 있지만, 현대 학습 기준에서는 1, 2, 4, 8바이트 감각을 먼저 잡으면 된다.

char

1 byte

문자 하나 또는 아주 작은 정수. 인코딩을 만나면 숫자와 문자의 경계가 보인다.

short

2 bytes

작은 정수 범위에 쓰지만, 실무에서는 명확한 의도가 있을 때 선택한다.

int

보통 4 bytes

가장 일반적인 정수 타입. 루프 카운터와 기본 계산의 출발점이다.

long long

8 bytes

큰 정수 계산용. 값 범위가 중요하면 고정폭 타입도 함께 고려한다.

실수 타입은 정밀도와 오차를 함께 본다

소수는 이진수로 정확히 표현되지 않는 값이 있어, 저장 가능한 범위보다 비교 방식이 더 중요해질 때가 많다.

float

약 6-7자리

메모리 절약이 우선일 때

그래픽스처럼 많은 값을 저장할 때 선택할 수 있지만 일반 계산에는 부족할 수 있다.

double

약 15-17자리

일반적인 실수 계산의 기본값

대부분의 C++ 실수 계산에서 먼저 고려하는 타입이다.

long double

환경별 상이

더 넓은 정밀도가 필요할 때

컴파일러와 플랫폼에 따라 실제 크기와 정밀도가 달라질 수 있다.

부호, 문자, bool은 해석 규칙의 차이다

같은 비트라도 타입이 달라지면 음수로 읽히거나 문자로 읽히거나 조건값으로 읽힌다.

signed vs unsigned

맨 앞 비트를 부호로 쓸지 결정한다

sign 64 32 16 8 4 2 1

unsigned는 음수를 버리고 양수 범위를 넓힌다. 비교와 오버플로 동작을 주의해야 한다.

char

문자는 작은 정수이기도 하다

'A'는 화면에는 문자로 보이지만 내부적으로는 인코딩 숫자값으로 저장된다.

char grade = 'A';
char asciiValue = 65;
bool

조건 판단을 위한 1바이트 값

truefalse 두 상태만 표현하며, 출력하면 기본적으로 1과 0으로 보일 수 있다.

bool isReady = true;
if (isReady) { run(); }