C 언어: 데이터 타입과 표현

비트(bit)는 저장의 최소 단위로 0 또는 1을 저장할 수 있으며, 컴퓨터 메모리의 기본 구성 요소입니다. 바이트(byte)는 일반적인 저장 단위로, 대부분의 시스템에서 1바이트는 8비트로 구성됩니다. 워드(word)는 컴퓨터에서 자연스럽게 처리되는 저장 단위로, 워드 크기가 클수록 처리 속도와 메모리 접근성이 높아집니다.

기본 데이터 형식

정수형(int)

정수형은 음수, 양수, 0을 포함하는 수를 저장합니다. 일반적으로 최소 범위는 -32768~32767입니다.

C 언어는 소수점이나 지수부가 없는 숫자를 정수로 인식합니다.

팔진수와 십진수 출력

십진수는 %d, 팔진수는 %o, 십육진수는 %x로 표시됩니다. 진수 구분을 위해 0x/0X는 십육진수, 0은 팔진수를 나타냅니다. 접두사를 함께 출력하려면 %#d, %#o, %#x 포맷을 사용합니다.

long과 short

short는 int보다 작은 크기를 가지며, long은 반대로 더 큰 크기를 가집니다. unsigned는 음수를 허용하지 않는 형식으로 0~65535 범위를 갖습니다.

void main() {
    int n1 = 2147483647;
    unsigned int n2 = 4294967295;
    printf("%d %d %d \n", n1, n1 + 1, n1 + 2);
    printf("%u %u %u \n", n2, n2 + 1, n2 + 2);
}

출력 결과:

2147483647 -2147483648 -2147483647
4294967295 0 1

정수형 출력 형식

형식포맷 스피서
unsigned%u
int%d
short%hd
long%ld
void main() {
    unsigned int num = 3000000000;
    short end = 200;
    long big = 65537;
    long long huge = 1234567890642;
    printf("num = %u and not %d\n",num,num);
    printf("end = %hd and %d\n",end,end);
    printf("big = %ld and not %hd\n", big, big);
    printf("huge = %lld and not %ld\n", huge, huge);
}

문자형(char)

char형은 문자를 저장하지만, 컴퓨터는 ASCII 코드와 같은 숫자로 표현합니다. 단일 문자는 단일 인용부호로 감싸여 표현됩니다.

비표시 문자

ASCII 코드 중 출력 불가능한 문자(예: 줄바꿈, 백스페이스)는 다음과 같이 처리합니다.

ASCII 코드 사용
char alert = 7;
이스케이프 시퀀스
이스케이프의미
\a경보
\b백스페이스
\n줄바꿈
void main() {
    char ch;
    printf("문자를 입력하세요.\n");
    scanf("%c", &ch);
    printf("'%c'의 코드는 %#d입니다.\n", ch, ch);
    printf("'%c'의 코드는 %#o입니다.\n", ch, ch);
    printf("'%c'의 코드는 %#x입니다.\n", ch, ch);
}

_Bool 형식

C99 표준에서 추가된 부울형식으로, true/false 값을 저장합니다. 내부적으로는 1과 0으로 저장되며, 일반적으로 1비트만 사용합니다.

이동성 있는 형식

stdint.h와 inttypes.h 헤더 파일은 다양한 시스템에서 동일한 기능을 수행하도록 보장합니다.

부동소수점 형식

float, double, long double는 대규모 수를 표현할 수 있는 형식입니다. C 표준은 float가 최소 6자리 정확도를 제공해야 합니다.

부동소수점 상수

예: -1.56E+12, 2.873-3, 2E5, 19.28 등

부동소수점 출력

printf 함수는 %f로 십진수 표현, %e로 지수 표현, %Lf로 long double를 출력합니다.

형식 크기 확인

sizeof 연산자와 %zd 포맷 스피서를 사용하여 시스템별 형식 크기를 확인할 수 있습니다.

printf("int 형식 크기: %zd 바이트", sizeof(int));

태그: C언어 데이터형 포맷스피서 비트 바이트

7월 18일 00:24에 게시됨