Minwoo Dev.

3. 자료형 본문

C++

3. 자료형

itisminu 2023. 6. 3. 15:53
728x90
반응형
SMALL

※기본 자료형의 종류와 데이터 범위

자료형
크기
값의 표현범위
정수형
char
1바이트
-128이상 +127이하
short
2바이트
-32768이상 +32767 이하
int
4바이트
-2,147,483,648이상 +2,147,483,647이하
long
4바이트
-2,147,483,648이상 +2,147,483,647이하
long long
8바이트
-9,223,372,036,854,775,808이상 +9,223,372,036,854,775,807 이하
실수형
float
4바이트
±3.4×10^(-37).이상 ±3.4×10^(+38)이하
double
8바이트
±1.7×10^(-307)이상 ±1.7×^(+308) 이하
long double
8바이트 이상
double 이상의 표현 범위

 

※ 실수형 변수에서 범위는 정수형 범위와 다르게 정밀도와 관련이 있다. 정밀도가 클수록 소수점 아랫자리까지 손실없이 데이터를 보존한다.

 

※ 자료형의 변환

- 자동 형 변환

#include<stdio.h>

int main(void)
{
   short num1 = 15. num2 = 25;
   short num3 = num1 + num2;
   .  .  .  .
   return 0;
}

 

위 소스코드에서 num1 과 num2 가 int 형으로 변환된다.

그 이유는 두 변수를 더한 값이 short 변수의 범위를 벗어나기 때문에 자동으로 num1, num2가 int형으로 변환된다.

이러한 형 변환을 "정수의 승격에 의한 자동 형 변환" 이라 한다.

#include<stdio.h>

int main(void)
{
   int num1 = 3, num2 = 4;
   double divResult;
   divResult = num1 / num2;
   printf("나눗셈 결과 : %f \n",divResult);
   return 0;
}

위와 같이 프로그램을 실행하면 결과는 0.0000이 나온다.

0.75가 출력되지 않는다는 소리다.

 

divResult = (double)num1 / num2;

위와 같이 코드를 수정하는 것을 "명시적 형 변환" 이라고 한다.

코드를 위와 같이 수정하면 우리가 원하는 0.75라는 값이 결과로 출력된다.

즉, int형 변수를 double 형으로 바꾸어 계산하여야 결과가 출력된다는 것이다.

※ 위와 같은 실수는 흔히들 많이 하니 주의할 것.

 

728x90
반응형
LIST