C 언어(2) - 기본 자료형 및 문자열

kimseyoung·2022년 12월 18일
0

C, C++

목록 보기
3/6

자료형의 기본 크기

기계어는 2진수 이다. 0과 1로 표현해야 한다. 이 때, 0 또는 1의 크기를 bit(비트)라고 한다. 예를들어 다음과 같은 기계어가 있다고 치자.

01101001

위는 총 0 또는 1이 8개 이므로 8bit라고 표현한다. 또한 8bit를 우리는 1byte로 정의한다. 이 후
1024byte는 1KB(킬로 바이트),
1024KB는 1MB(메가 바이트),
1024MB는 1gb(기가 바이트),
1024GB는 1TB(테라바이트) 순으로 크기를 표현한다.

기본 자료형

C의 기본 자료형은 다음과 같다.

자료형크기표현 범위
char1 byte-128 ~ 127
short2 byte-32,768 ~ 32,767
int4 byte-2,147,483,648 ~ 2,147,483,647
long4 byte-2,147,483,648 ~ 2,147,483,647
long long8 byte-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float4 byte±3.4 x 10^-37 ~ ±3.4 x 10^38
double8 byte±1.7 x 10^-307 ~ ±3.4 x 10^308
long double8 byte 이상double 이상의 표현범위
boolean1bitTrue or False(1 or 0) 논리형

모든 자료형은 1bit를 부호 표현의 용도로 사용하고, 0을 항상 포함한다. 그래서 char로 예를 들면 -128~127, 128을 표현하지 못하는 것이다. 즉 1bit는 부호용이고 7bit만을 수 표현으로 사용하고, 0을 포함하기 때문에 최대 표현 가능한 수의 절대 값은,

2^6 + 2^5+ 2^4 + 2^3 + 2^2 + 2^1+ 2^0 = 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127 이 된다.

만일 부호가 필요 없고, 더욱 큰 수를 표현하고 싶다면, unsigned를 사용하면 된다.

구분명칭설명
부호가 있는 변수signed기본형식 굳이 signed을 붙히지 않아도 된다.
부호가 없는 변수unsigned음수를 표현할 수 없는 대신, 양수 값의 표현범위가 두배 정도 늘어난다.

예를 들면 unsigned int 의 경우에는 4byte = 32bit를 모두 수 표현으로만 사용 할 수 있게 되므로, 약 두배 정도 표현 가능한 수의 범위가 늘어난다.

또한, float와 double은 10의 승수로 비트를 사용하여 표현하기 때문에 표현 범위가 넓다. float는 소수점 아래 7자리까지 표현이 가능하고, double은 16자리까지 표현이 가능하다. float를 단정밀도 부동소수점 이라고 하고, doulbe을 배정밀도 부동소수점 이라고도 얘기한다.

boolean은 논리형 자료로서 참 또는 거짓만 표현하기 때문에 0 과 1로 충분하여, 1bit만을 차지한다.

profile
Back-end Developer, DevOps Engineer

0개의 댓글