Web Development/C

[C] C 언어의 자료형 정의

devflate 2024. 8. 4. 13:31

<데이터의 크기>

bit : 컴퓨터가 처리할 수 있는 최소의 데이터 단위, 하나의 bit는 0 또는 1의 값을 가질 수 있다.

byte : 하나의 비트만으로는 값을 표현하기가 어렵기 때문에 여러개의 비트를 모아 하나의 값을 표현한다. (8bit = 1byte)

 

<C언어의 자료형>

자료형이란?
저장되는 데이터의 종류에 따른 형태.

사용하는 이유?
저장되는 값의 종류와 범위에 따라 다르게 표현함으로써, 컴퓨터가 데이터의 형태에 대해 인식할 수 있도록 하기 위해서

사용 방법?

종류 자료형 메모리 크기 값의 범위 상세
정수형 변수 char 8bit (1byte) -128
~ 128
최소 2byte
이상인 정수형
int 32bit (4byte) -2,147,483,648
~ 2,147,483,647
최소 2byte
이상인 정수형
unsigned int 32bit (4byte) 0
~ 4294967295
 
long long (int) 64bit (8byte) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 최소 8byte
이상인 정수형
short (int) 16bit(2byte) -32768
~ 32767
최소 2byte
이상인 정수형
실수형 변수 float 32bit (4byte) 3.4*10^-37
~ 3.4*10^38 (실수)
 
double 64bit (8byte) 1.7*10^-307
~ 3.4*10^308 (실수)
 

 

  1. char : 최소 8bit(1byte) 인 정수형, 256
  2. short (short int) : 최소 16bit (2byte)인 정수형
  3. int : short 보다 크고, 최소 16bit(2byte) 이상인 정수형 (int는 최소 2byte의 범위를 표현한 정수형이며, 32bit까지는 아키텍처에 따라 크기가 달라지지만, 그 이상에는 4byte로 고정된다.)
  4. long (long int): 최소 32bit (4byte) 이상인 정수형 OS와 어플리케이션의 bit에 따라 달라진다. windows 에서만 long의 크기가 4byte로 고정된다. (따라서 크로스플랫폼 개발 시, Windows가 포함되어 있는 환경이라면 long(int, long long)을 사용하지말고, C99 표준에서 추가된 stdint.h에 포함된 (int32_t, int64_t) 자료형을 사용하는 것을 권장한다.)OS Application Bit (binary) long size 
    Windwos (x86-64) 32 bit 4 byte
      64 bit 4 byte
    OS X (x86-64) 32 bit 4 byte
      64 bit 8 byte
    Linux (x86-64) 32 bit 4 byte
      64 bit 8 byte
    Aix (PowerPC) 32 bit 4 byte
      64 bit 8 byte
    HP-UX (IA-64) 32 bit 4 byte
      64 bit 8 byte
    Solaris (Sparc) 32 bit 4 byte
      64 bit 8 byte
  5. long long (int): 8byte(64bit) 자료형 (C99 표준에 해당 타입이 추가되었다. C89 표준 정의 당시 64bit를 지원하는 아키텍처가 없었기 때문)

<singed vs unsigned>

  1. signed 자료형이 가질 수 있는 크기 중 최상위 비트를 부호 판별용으로 사용하기 때문에 표현할 수 있는 숫자의 범위가 좁다.
  2. unsigned 부호 판별이 필요없기 때문에, signed 변수보다 숫자의 범위를 더 넓게 표현할 수 있다.

<출처>

https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170

https://opentutorials.org/module/3921/23515

https://hackerpark.tistory.com/entry/C언어-int-와-long-은-무엇이-다를까-short-short-int-int-long-int-long-long-long

https://newmkka.tistory.com/69