본문 바로가기
Tech, Tech, Tech/C++

C++ 기초 명령어 [2.3 데이터 타입, 자료형][숫자를 표현하는 데이터 타입]

by 결기공 2019. 12. 24.

"C++ 기초 명령어" 챕터에서는 C++ 프로그래밍을 하는데 있어 가장 기초적으로 사용되는 명령어들을 몇가지 알아보고 있습니다.

아래의 순서대로 챕터가 진행됩니다.

더보기

- [2.1. 변수와 변수 선언] 

https://beelee.tistory.com/12

 

- [2.2. 데이터 입력 / 데이터 출력] 

https://beelee.tistory.com/16

 

- [2.3. 데이터 타입] 

  • [2.3.1] 숫자를 표현하는 데이터 타입 - 오늘의 주제
  • [2.3.2] 문자를 표현하는 데이터 타입
  • [2.3.3] 데이터 타입별 호환성

- [2.4. Boolean 데이터 타입]


[2.3.1] 숫자를 표현하는 데이터 타입 (자료형)

*데이터 타입과 자료형은 같은 의미의 단어입니다. (한글로는 자료형 영어로는 data type)

 

수학에서 2 와 2.0은 동일하지만 프로그래밍에서는 아닙니다.

프로그래밍에서 2 는 int (정수) 데이터 타입으로 분류되며,

2.0은 double (실수) 데이터 타입으로 분류됩니다.

 

이제 c++에서 가장 자주 사용하는 데이터 타입에 대해서 알아보도록 하겠습니다.

크게는 정수를 다루는 데이터 타입과, 실수를 나누는 데이터 타입으로 분류됩니다.

C++에서 자주 사용하는 데이터 타입 (자료형)

정수를 다루는 데이터 타입 [short, int long]

short

- 메모리 사용량: 2 byte, (16bit) (2^16개, 65536개의 숫자를 표현)

**1 byte = 8 bit

- 표현가능숫자: -32,768 ~ 32,767

-소수 표현 불가

 

아래 코드처럼 사용하면 됩니다.

//양수의 표현
short 변수 = 32767;
//음수의 표현
short 변수 = -32767

 

만약 최대 표현값 이상의 값을 대입하면 어떻게 될까요?

short 변수 = 32768; //short 가 표현할 수 있는 최대값 보다 1 높은 숫자
short 변수2 = 32769; //short 가 표현할 수 있는 최대값 보다 2 높은 숫자

결과는 아래처럼,

short 가 표현할 수 있는 최대값 보다 1이 높은 숫자 대입시, 최소값인 -32768이 출력되며

최대값보다 2가 높은 숫자를 대입 하였을 때, 최소값보다 1이 높은 -32767이 출력됩니다.

변수 = - 32768
변수1 = -32767

 

int

-메모리 사용량: 4 byte (32bit)(즉, 2^32 개의 숫자 표현가능)

**1 byte = 8 bit

-표현가능숫자: -2,147,483,648 ~ 2,147,483,647

-소수표현불가

*int 도 short와 마찬가지로, 최대값 이상이 표현되면 다시 마이너스로 돌아가게됩니다.

 

아래코드처럼 사용하시면 됩니다.

//양수의 표현
int 변수 = 2147483647
//음수의 표현
int 변수 = -2147483647

 

long

-메모리 사용량: 4 byte (32bit)(즉, 2^32 개의 숫자 표현가능) - windows 기준, 64bit 시스템의 unix에서는 8 byte (64bit)

**1 byte = 8 bit

-표현가능숫자: -2,147,483,648 ~ 2,147,483,647

-소수표현불가

*long 도 short와 마찬가지로, 최대값 이상이 표현되면 다시 마이너스로 돌아가게됩니다.

 

-int 와의 차이점:

이전에, 16bit 시스템을 사용할때, int 가 2 byte (16bit) 의 크기를 가지고 있었습니다.

32bit, 64bit 시스템이 표준화됨과 함께, int 가 4 byte(32bit)가 되었으며, long 도 여전히 4 byte(32bit)로 남아있습니다.

다만, OS에 따라 long의 용량은 상이할 수도 있는데, 64bit 시스템의 UNIX OS의 경우 long의 길이도 64bit인 8byte입니다.

 

아래코드처럼 사용하시면 됩니다.

//양수의 표현
long 변수 = 2147483647
//음수의 표현
long 변수 = -2147483647

 

 

실수를 다루는 데이터 타입 [float, double, long double]

정수와 달리 실수는 소수점이 들어간 숫자를 표현할 때 사용됩니다.

정수는 한가지 방법으로 숫자를 표현하였지만,

실수는 두가지 방법으로 숫자를 표현할 수 있습니다.

아래 예를 통해서 확인하겠습니다. 

 

float

메모리 사용량: 4 byte (32bit) 

표현가능숫자: 10-38 ~ 1038

소수점표현: 소수점 7자리까지 표기 가능

 

아래 코드처럼 사용하시면 됩니다

//양수
float 변수 = 3.141592
float 변수 = 0.3141592e1
//음수
float 변수 = -3.141592
float 변수 = -0.3141592e1

여기서 중요한 점은, 실수 데이터 타입의 경우 일반적인 소수점으로 데이터를 표현할 수도 있지만, e를 이용하여 숫자를 표현할 수도 있습니다. 여기서 e란 10의 제곱입니다. 

e1 = 101, e2 = 102 ....

 

double

메모리 사용량: 8 byte (64bit) 

표현 가능 숫자: 10-305 ~ 10305

소수점표현: 소수점 15자리까지 표기 가능

 

아래 코드처럼 사용하시면되며, float 와 같이 e를 이용하여 10의 제곱으로 숫자를 표현할 수 있습니다.

//양의 숫자
double 변수 3.141915;
double 변수 0.3141915e1;

//음의숫자
double 변수 -3.141915;
double 변수 -0.3141915e1;

 

 

long double 

메모리 사용량: 10 bye (80bit)

표현 가능 숫자: 10-4932 ~ 104932

소수점 표현: 소수점 19자리까지 표기 가능

 

아래 코드처럼 사용하시면되며, float 와 같이 e를 이용하여 10의 제곱으로 숫자를 표현할 수 있습니다.

//양의 숫자
long double 변수 3.141915;
long double 변수 0.3141915e1;

//음의숫자
long double 변수 -3.141915;
long double 변수 -0.3141915e1;

이상 오늘은 숫자를 표현하는 데이터 타입에 대해서 알아보았습니다.

각 숫자가 실수인지 또는 정수인지에 따라 어떤 데이터 타입을 사용할지 정하는 것은 중요한 문제이니,

위 데이터 타입들에 대한 정보를 숙지하는것은 여러모로 도움이 될것입니다.

 

다음에는 문자를 다루는 char 또는 string 데이터 타입에 대해 알아보도록 하겠습니다. 

 

댓글