# 2.2 데이터 형과 크기

<p class="callout info">**실습 전 이론**</p>

**C에는 다음과 같은 몇 개의 기본적인 데이터 형이 있다.**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-12/scaled-1680-/MdvlN7fT8FXDA4xt-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-12/MdvlN7fT8FXDA4xt-image.png)

**위 기본형에는 몇 개의 한정사가 붙을 수 있는데 정수형에는 short와 long을 쓸 수 있다.**

**short int sh;**

**long int counter;**

**이런 선언문에서 int란 단어는 보통 생략.**

**ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ**

**int, short, long의 길이는 하드웨어나 컴파일러에 따라 다르게 정해진다,**

**보통 short 는 16비트 long은 32비트가 된다.**

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

**문자나 정수에는 부호형(signed) 또는 무부호형(unsigned) 이라는 한정사를 붙일 수 있다.**

**무부호형 수는 항상 0보다 크거나 같고 크기는 2의 n승으로 정해진다. (2,4,8,16 등등 2의 제곱 중에서 결정되는 듯)**

**부호 문자형은 -128에서 127까지의 (2의 보수 기계에서) 값을 갖는다.**

**위에서 2의 보수 기계에 대해 알아봤다.**

**숫자는 1바이트에 저장되는데 총 1 바이트에는 256까지의 수를 셀 수 있다.**

**그러나 그것은 양수만 셋을때의 경우이기 때문에 음수를 표현하려면 해당 범위를 반반 나눠가져야하는데,**

**음수로 -128, 양수로 128 로 나눴다고 생각하면 0 이 남는다. 여기서 위에서 말한 2의 보수 기계에서는 0이 양수에 포함되었다고 계산한다.**

**그럼 양호 128 에 0 을 포함시켜야 하니 양수가 가질 수 있는 값은 0~127이 된다.**

**음수는 그대로 -128 까지, 두 음,양수의 범위가 다른 이유다.**

**1의 보수 기계의 경우 -0 과 +0을 구분하여 음수는 -127까지 양수는 127까지 범위를 가진다.**

<p class="callout info">**실습**</p>

<p class="callout info">**실습 후 이론**</p>