본문 바로가기
C언어

자료형의 크기 및 범위

by janeparker 2023. 6. 3.
728x90
반응형

출처: https://myblog.opendocs.co.kr/archives/1230

 

32비트를 기준으로 한 자료형의 크기 및 범위이다. 다른 OS(16비트, 64비트)나 컴파일러에서 자료형의 크기가 조금씩 다르다는점 기억해 두자.

구분자료형크기범위

기본형 void
문자형 (signed) char 1 byte -128 ~ 127
unsigned char 1 byte 0 ~ 255
wchar_t 2 byte 0 ~ 65,535
정수형 bool 1 byte 0 ~ 1
(signed) short (int) 2 byte -32,768 ~ 32,767
unsigned short (int) 4 byte 0 ~ 65,535
(signed) int 4 byte -2,147,483,648 ~ 2,147,483,647
unsigned int 4 byte 0 ~ 4,294,967,295
(signed) long (int) 4 byte -2,147,483,648 ~ 2,147,483,647
unsigned long (int) 4 byte 0 ~ 4,294,967,295
__int8 1 byte -128 ~ 127
__int16 2 byte -32,768 ~ 32,767
__int32 4 byte -2,147,483,648 ~ 2,147,483,647
__int64 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형 float 4 byte 3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits)
(long) double 8 byte 1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79*10^308) (15digits)

 

 

OS별(16bit/32bit/64bit) 크기 사용의 요점은 다음과 같다.

  * int는 시스템의 기본연산 단위를 사용한다. (16bit=>2byte, 32=>4byte, 64=>4byte)
  * 64bit에서 long형을 8byte로 확장하였다. (16bit=>4byte, 32=>4byte, 64=>8byte)

다음코드로 자료형의 크기를 확인할 수 있다.

#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "char \t\t: " << sizeof(char) << " bytes\n";
    cout << "unsigned char \t: " << sizeof(unsigned char) << " bytes\n";
    cout << "wchar_t \t: " << sizeof(wchar_t) << " bytes\n";
    cout << "bool \t\t: " << sizeof(bool) << " bytes\n";
    cout << "short \t\t: " << sizeof(short) << " bytes\n";
    cout << "unsigned short \t: " << sizeof(unsigned short) << " bytes\n";
    cout << "int \t\t: " << sizeof(int) << " bytes\n";
    cout << "unsigned int \t: " << sizeof(unsigned int) << " bytes\n";
    cout << "long  \t\t: " << sizeof(long) << " bytes\n";
    cout << "unsigned long \t: " << sizeof(unsigned long) << " bytes\n";
    cout << "__int8 \t\t: " << sizeof(__int8) << " bytes\n";
    cout << "__int16 \t: " << sizeof(__int16) << " bytes\n";
    cout << "__int32 \t: " << sizeof(__int32) << " bytes\n";
    cout << "__int64 \t: " << sizeof(__int64) << " bytes\n";
    cout << "float \t\t: " << sizeof(float) << " bytes\n";
    cout << "double \t\t: " << sizeof(double) << " bytes\n";
    return 0;
}

 

728x90
반응형

'C언어' 카테고리의 다른 글

8비트 2개를 16비트 uint16_t 로 변환  (0) 2023.06.29
비트단위 연산자 종류별 예시  (0) 2023.06.03
%hhu %hhd 차이  (0) 2023.06.03
개행문자 r \ n, \ n, \t, \b  (1) 2023.06.03
10진수를 2진수로, 2진수를 10진수로  (0) 2023.06.03