문제를 풀거나 프로그램을 설계할 때 주어진 변수의 크기를 위해 그에 알맞은 데이터 형식을 사용해야 한다.
Python의 경우 변수에 대한 자료형을 따로 지정하지 않고 사용하므로 변수 선언 당시 이를 고려할 필요는 없지만 그외의 언어에서 자료형을 통해 변수를 정의하는 경우 반드시 올바른 범위를 가진 자료형으로 정의하였는지 판단하는 게 중요하다.
- 유형 이름 - 바이트 - 값의 범위
int 4 –2,147,483,648 ~ 2,147,483,647
unsigned int 4 0 ~ 4,294,967,295
char 1 -128 ~ 127
unsigned char 1 0 ~ 255
short 2 -32,768 ~ 32,768
unsigned short 2 0 ~ 65,535
long 4 int 와 동일
unsigned long 4 unsigned int 와 동일
long long 8 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned long long 8 0 ~ 18,446,744,073,709,551,615
float 4 3.4E+/-38 (7개의 자릿수)
double 8 1.7E+/-308 (15개의 자릿수)
내가 필요한 연산이 정수의 범위인지 소수점을 이용한 계산을 필요로 하는지 생각해보고
변수들의 연산 과정에서 자료형의 범위가 넘어가지는 않는 지 확인할 필요가 있다.
int a; // 1 <= a <= 1,000,000,000
int b; // 1 <= b <= 1,000,000,000
cin >> a >> b;
double c;
c = a * b;
이러한 계산 과정이 일어난다고 가정하면 a와 b의 곱셈으로 int 형 범위를 넘어갈 수 있기 때문에 변수 c의 범위는 그보다 큰 double 형으로 선언해줘야 한다.