신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

1. 자료형이란?

메모리에 데이터가 저장되는 형식이다.

자료형마다 메모리 공간을 다르게 할당되는데, 예를 들어 int의 경우 4byte, char의 경우 1byte 이다.

 

자료형에는 정수형과 실수형으로 나눠진다.

(보통 정수형에서는 int, 실수형에서는 double이 많이 사용된다.)

 

 

정수형에는 char, short, int, long 이 존재하고 실수형에는 float, double, long double이 존재한다.

 

 

참고 : bit 와 byte

1byte는 8bit를 나타낸다.

종종 컴퓨터보면 32bit, 64bit로 나눠지는것을 본적이 있다.

이는 CPU가 한번에 처리하는 비트의 수로 32bit는 한번에 32개의 bit를 처리하고, 64bit 64개의 비트를 처리한다.

 

 

 

 

 

위의 1011 0010의 binary 표현은 10진수 178을 나타낸다. 위 그림은 계산 방법이다.

 

2. 사용 범위 - 정수형

char : 1byte(8bit) : -128 ~ 127

short : 2byte(16bit) : -32768 ~ 32767

int : 4byte(32bit) : -217483648 ~ 2147483647

long : 4byte(32bit) : -217483648 ~ 2147483647

#include <stdio.h>
// 각각의 데이터 타입의 최대값 최소값을 알려주는 헤더
#include <limits.h>
 
int main(void) {
    
    // limits.h 헤더 덕분에 MIN, MAX를 사용할 수 있다.
    printf("char : %d ~ %d", CHAR_MIN, CHAR_MAX);
    printf("\n");
 
    printf("short : %d ~ %d", SHRT_MIN, SHRT_MAX);
    printf("\n");
    
    printf("int : %d ~ %d", INT_MIN, INT_MAX);
    printf("\n");
 
    printf("long : %d ~ %d", LONG_MIN, LONG_MAX);
    printf("\n");
 
    return 0;
}

 

 

 

3. 사용 범위 - 실수형

float : 4byte 1.175494e-38 ~ 3.402823e+38

double : 8byte : 2.225074e-308 ~ 1.797693e+308

long double : 8byte : 2.225074e-308 ~ 1.797693e+308

#include <stdio.h>
// 정수의 경우에는 limits.h 헤더파일을 이용했지만,
// 실수는 float.h 헤더파일을 이용한다.
#include <float.h>
 
int main(void) {
 
    printf("float : %e ~ %e", FLT_MIN, FLT_MAX);
    printf("\n");
    
    printf("double : %e ~ %e", DBL_MIN, DBL_MAX);
    printf("\n");
 
    printf("long double : %e ~ %e", LDBL_MIN, LDBL_MAX);
    printf("\n");
 
    return 0;
}​

 

 

4. 형변환

#include <stdio.h>
 
int main(void) {
 
    int intType = 10;
    double doubleType = 0.123;
 
    // 정수 형태와 실수 형태를 합치면 자동으로 실수형태로 형변환 된다.
    printf("%lf", intType + doubleType);
    printf("\n");
 
    // 강제로 형변환 시키는 방법도 있다.
    int num1 = 5;
    int num2 = 12;
 
    printf("형변환 전 : %lf", num2 / num1);
    printf("\n");
 
    printf("형변환 후 : %lf", (double)num2 / num1);
    printf("\n");
 
    return 0;
}​

 

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기