목차
- 자료형 종류
- Signed Unsigned의 차이
- c++ 코드
- 자료형 바이트 확인
1. 자료형 - (논리형, 문자형, 정수형, 실수형)
64비트 환경에서의 자료형의 크기와 범위
자료형 이름 | 크기 | 범위 | |
논리형 | bool | 1 byte = 8비트 | 0~1 |
문자형 | (signed)char | 1 byte = 8비트 | -128 ~ 127 |
unsigned char | 2 byte = 16비트 | 0 ~ 255 | |
정수형 | (signed)short | 2 byte = 16비트 | -32,768 ~ 32,767 |
unsigned short | 2 byte = 16비트 | 0 ~ 65,535 | |
(signed) int | 4 byte = 32비트 | -2,147,483,648 ~ 2,147,483,647 | |
unsigned int | 4 byte = 32비트 | 0 ~ 4,294,967,295 | |
(signed) long | 4 byte = 32비트 | –2,147,483,648 ~ 2,147,483,647 | |
unsigned long | 4 byte = 32비트 | 0 ~ 4,294,967,295 | |
(signed) long long | 8 byte = 64비트 | –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
unsigned long long | 8 byte = 64비트 | 0 ~ 18,446,744,073,709,551,615 | |
실수형 | float | 4 byte = 32비트 | 3.4E+/-38(7개의 자릿수) |
double | 8 byte = 64비트 | 1.7E+/-308(15개의 자릿수) | |
long double | 8 byte = 64비트 | 1.7E+/-308(15개의 자릿수) = double과 동일 |
기본적으로 4가지 종류의 자료형이 있습니다.
2. Signed / Unsigned 의 차이
Signed | 양수와 음수를 표현 하기 위한 자료형의 특성 |
Unsigned | Signed보다 더 많은 양수'만'을 위한 자료형의 특성 - 음수는 표현되지 않습니다. |
3. C++ 코드로 확인해보기
#include <iostream>
#include <typeinfo>
int main() {
char a = 'a';
unsigned char b = 'b';
short c = 1;
unsigned short d = 1;
int e = 1;
unsigned int f = 1;
long g = 1;
unsigned long h = 1;
long long i = 1;
unsigned long long j = 1;
float k = 1.0;
double l = 1;
long double m = 1.0f;
bool n = false;
std::cout << ">> a << " << typeid(a).name() << ' ' << sizeof(char) << "바이트" << std::endl;
std::cout << ">> b << " << typeid(b).name() << ' ' << sizeof(unsigned char) << "바이트" << std::endl;
std::cout << ">> c << " << typeid(c).name() << ' ' << sizeof(short) << "바이트" << std::endl;
std::cout << ">> d << " << typeid(d).name() << ' ' << sizeof(unsigned short) << "바이트" << std::endl;
std::cout << ">> e << " << typeid(e).name() << ' ' << sizeof(int) << "바이트" << std::endl;
std::cout << ">> f << " << typeid(f).name() << ' ' << sizeof(unsigned int) << "바이트" << std::endl;
std::cout << ">> g << " << typeid(g).name() << ' ' << sizeof(long) << "바이트" << std::endl;
std::cout << ">> h << " << typeid(h).name() << ' ' << sizeof(unsigned long) << "바이트" << std::endl;
std::cout << ">> i << " << typeid(i).name() << ' ' << sizeof(long long) << "바이트" << std::endl;
std::cout << ">> j << " << typeid(j).name() << ' ' << sizeof(unsigned long long) << "바이트" << std::endl;
std::cout << ">> k << " << typeid(k).name() << ' ' << sizeof(float) << "바이트" << std::endl;
std::cout << ">> l << " << typeid(l).name() << ' ' << sizeof(double) << "바이트" << std::endl;
std::cout << ">> m << " << typeid(m).name() << ' ' << sizeof(long double) << "바이트" << std::endl;
std::cout << ">> n << " << typeid(n).name() << ' ' << sizeof(bool) << "바이트" << std::endl;
return 0;
}
각 자료형들의 바이트를 확인하기 위한 C++ 코드입니다. C++ 도 C와 비슷함을 볼 수 있습니다.
헤더파일이나 std:cout 과 같은 내용은 다음 글에 작성할 예정입니다.
4. 실행결과
각 알파벳의 자료형들의 바이트가 표현 된 것을 볼 수 있습니다.