신규 블로그를 만들었습니다!
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;
}
관련 글
2018/01/25 - [Language/C] - C언어 :: 상수와 상수의 종류, const와 #define #5
2018/01/25 - [Language/C] - C언어 :: signed, unsigned 그리고 underflow, overflow #7
'Language > C&C++' 카테고리의 다른 글
C언어 :: ASCII 코드와 코드표 #8 (0) | 2018.01.27 |
---|---|
C언어 :: signed, unsigned 그리고 underflow, overflow #7 (0) | 2018.01.25 |
C언어 :: 상수와 상수의 종류, const와 #define #5 (0) | 2018.01.25 |
C언어 :: 변수와 메모리, 선언 및 초기화 #4 (0) | 2018.01.23 |
C언어 :: 기본구조, 주석, 특수문자, 서식문자 #3 (0) | 2018.01.23 |
최근댓글