티스토리 뷰
안녕하세요
C의 첫 글은 아무래도 data type 부터 시작해야 되지 않을까 해서 data type에 대해 설명하는 글을 작성하게 되었습니다.
간단한 예제를 보여드리겠습니다.
#include <stdio.h> //정수형 데이터 타입 char i_c; short i_s; int i_i; long i_l; long long i_ll; //실수형 데이터 타입 float f_f; double f_d; long double f_ld; //unsigned 데이터 타입 unsigned char u_c; unsigned short u_s; unsigned int u_i; unsigned long u_l; // sizeof를 이용해 크기 확인 int main() { //정수형 데이터 타입들의 크기 printf("char의 크기는 = %d\n", sizeof(i_c)); printf("short의 크기는 = %d\n", sizeof(i_s)); printf("int의 크기는 = %d\n", sizeof(i_i)); printf("long의 크기는 = %d\n", sizeof(i_l)); printf("long long의 크기는 = %d\n", sizeof(i_ll)); //실수형 데이터 타입들의 크기 printf("float의 크기는 = %d\n", sizeof(f_f)); printf("double의 크기는 = %d\n", sizeof(f_d)); printf("long double의 크기는 = %d\n", sizeof(f_ld)); //unsigned 데이터 타입들의 크기 printf("unsigned char의 크기는 = %d\n", sizeof(u_c)); printf("unsigned short의 크기는 = %d\n", sizeof(u_s)); printf("unsigned int의 크기는 = %d\n", sizeof(u_i)); printf("unsigned long의 크기는 = %d\n", sizeof(u_l)); }
여기서 a,b는 숫자를 저장할 변수로 지정하였습니다.
이렇게 a ,b를 숫자가 들어갈 수 있는 변수라는 것을 선언하기 위하여 앞에 int를 쓰게 됩니다.
이러한 int를 data type이라고 하며
보시면 정수형, 실수형, unsigned로 나누어 작성하였습니다.
각각의 데이터 타입들은 각자 정의된 데이터 크기가 있으며 이를 통해 값의 범위 또한 달라집니다.
다음은 예제에 대한 소스를 컴파일하여 크기를 출력한 화면 입니다.
보시면 char는 1byte, short은 2byte를 나타내고 있습니다. 알아 두셔야 할 것은 이 데이터 값의 크기 중 long과 long double은 32bit와 64bit에서 차이가 나는 값입니다.
32bit와 64bit에서의 데이터 값을 표로 정리해보았습니다.
정수형 데이터 타입
데이터 타입명 |
데이터 크기 |
값의 범위 |
char |
1 byte |
-128~127 |
short |
2 byte |
-32,768~32,767 |
int |
4 byte |
-2,147,483,648~2,147,483,647 |
long |
4 byte |
-2,147,483,648~2,147,483,647 |
long long |
8 byte |
-2^63 ~ 2^63 - 1 |
실수형 데이터 타입
데이터 타입명 |
데이터 크기 |
값의 범위 |
float |
4 byte |
1.175494E-38 ~ 3.402823E+38 |
double |
8 byte |
2.2250738585E-308 ~ 1.7976931349E+308 |
long double |
8 byte |
Double과 같습니다. |
알고 계시면 좋은 것이 MS에서 공식 다큐에서는 float는 6~7자리를 유효 자릿 수로 알려주고 있습니다.
double은 15~16자리를 자릿수로 알려주고 있습니다.
저는 여태 6자리와 15자리로 알고 있었는데 어떤 차이인지는 아직까지는 알 수가 없네요.
unsigned 데이터 타입
데이터 타입명 |
데이터 크기 |
값의 범위 |
unsigned char |
1 byte |
0~255 |
unsigned short |
2 byte |
0~65,535 |
unsigned int |
4 byte |
0~4,294,967,295 |
unsigned long |
4 byte |
0~4,294,967,295 |
unsigned의 경우 양수 전용 이라고 생각하시면 될 것 같습니다.
변수를 사용하실 때 필요한 데이터의 크기나 유형에 따라서 변수의 데이터 형태를 잘 보고 지정 해주셔야 원하는 결과를 얻으실 수 있습니다.
감사합니다
'Coding > C' 카테고리의 다른 글
변수 사용하는 법 (0) | 2018.05.11 |
---|---|
C언어 printf 다양하게 사용해보기 (0) | 2018.04.27 |
C언어 주석의 이유와 주석 달기 방법 (2) | 2018.04.27 |
C의 기본 구성 (Hello world 출력) (0) | 2018.04.27 |
- Total
- Today
- Yesterday
- printf
- ping
- PE 구조체
- PE
- 정보처리기사
- reversing
- ping option
- ping 옵션
- PE header 구조
- peview
- VMware
- 리버싱
- 정보보안기사
- pingoption
- 핑
- AirCrack
- linux ping
- 정보처리기사실기
- 악성코드
- aircrack-ng
- PE 구조
- 영화 해석
- pe header
- C언어
- Network Ping
- 기초
- 조커 해석
- OllyDbg
- 올리디비지
- 영화 조커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |