Language/C

📌 Chapter 04 - 변수와 자료형 - 자료형

e-cko 2025. 5. 17. 17:02
반응형
반응형

2. 자료형(data type)

1) 자료형의 개념

  • 자료형은 데이터를 저장할 때 사용되는 메모리 공간의 크기와 종류를 지정하는 단위이다.
  • 변수 선언 시 해당 변수에 어떤 종류의 데이터를 저장할지를 지정한다.
  • 데이터의 크기입출력 형태에 따라 적절한 자료형을 선택해야 한다.
  • 자료형을 필요 이상으로 크게 지정하면 메모리를 낭비할 수 있다.
  • 문자형(char)아스키코드와 매핑되어 실제로는 정수형에 속한다.
  • 선언된 변수는 자료형에 따라 고정된 메모리 공간을 차지한다.
  • 데이터를 효율적으로 처리하기 위해 용도에 맞는 자료형 선택이 중요하다.
  • 예를 들어, 실수 데이터를 정수형에 저장하면 소수점 이하가 잘려서 손실된다.

2) 부호(Sign Bit)

  • 대부분의 자료형은 맨 앞의 1bit를 부호 비트로 사용한다. 예를 들어, 실수 데이터를 정수형에 저장하면 소수점 이하가 잘려서 손실된다.
  • 0이면 양수, 1이면 음수이다.
  • signed 자료형은 부호를 포함하며, 일반적으로 생략 가능하다.

·        unsigned: 양수만 표현할 수 있으며, 같은 바이트 수일 때 표현 가능한 최대 양수 값이 2배 더 크다.

 

3) 오버플로(Overflow)와 언더플로(Underflow)

3-1) 오버플로

·        자료형이 표현할 수 있는 최댓값을 초과한 경우 발생한다.

·        값은 다시 최솟값부터 시작하여 순환된다.

·        컴파일러는 에러나 경고를 표시하지 않으므로 주의가 필요하다.

·        해결 방법: 범위에 맞는 자료형 사용

 

💻 예제 코드 (오버플로 발생 예시)

#include <stdio.h>

int main() {

    short s = 32767; // short의 최대값

    s = s + 1;       // 오버플로 발생

    printf("오버플로 결과: %d\n", s); // -32768 출력

    return 0;

}

 

3-2) 언더플로

·        자료형의 최솟값보다 작은 값을 저장하려 할 때 발생한다. 해결 방법: 범위에 맞는 자료형 사용

·        결과는 최댓값으로 순환되어 출력된다.

💻 예제 코드 (언더플로 발생 예시)

#include <stdio.h>

int main() {

    short s = -32768; // short의 최솟값

    s = s - 1;         // 언더플로 발생

    printf("언더플로 결과: %d\n", s); // 32767 출력

    return 0;

}

 

마무리 정리

1️ 자료형은 데이터를 저장하는 메모리의 크기와 형식을 정의한다.
2️
자료형 선택은 메모리 절약과 안정성에 영향을 준다.
3️
오버플로와 언더플로는 자료형 범위 초과 시 발생하며 주의가 필요하다.


반응형