"C++ 기초 명령어" 챕터에서는 C++ 프로그래밍을 하는데 있어 가장 기초적으로 사용되는 명령어들을 몇가지 알아보고 있습니다.
아래의 순서대로 챕터가 진행됩니다.
- [2.1. 변수와 변수 선언]
- [2.2. 데이터 입력 / 데이터 출력]
- [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++에서 가장 자주 사용하는 데이터 타입에 대해서 알아보도록 하겠습니다.
크게는 정수를 다루는 데이터 타입과, 실수를 나누는 데이터 타입으로 분류됩니다.
정수를 다루는 데이터 타입 [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 데이터 타입에 대해 알아보도록 하겠습니다.
'Tech, Tech, Tech > C++' 카테고리의 다른 글
C++ 기초[2.3 데이터 타입][데이터 타입 호환] (0) | 2019.12.31 |
---|---|
C++ 기초 명령어 [2.3 데이터 타입, 자료형][문자를 표현하는 데이터 타입] (0) | 2019.12.26 |
C++ 기초 명령어 [2.2 데이터의 입력과 출력][cin을 통한 데이터 입력] (0) | 2019.12.24 |
C++ 기초 명령어 [2.2 데이터의 입력과 출력] [이스케이프 시퀀스] (0) | 2019.12.20 |
C++ 기초 명령어 [2.2 데이터의 입력과 출력][cout을 통한 데이터 출력] (0) | 2019.12.16 |
댓글