스터디/C언어
C언어 자료형(Data Type)
코딩광_
2018. 12. 14. 15:54
1. C언어 자료형(Data Type)
C언어에는 자료형이 있다. 자료형의 종류로 정수형, 실수형, 문자형 등이 있다. 자료형 의 종류에 따라 데이터를 다루는 크기가 달라진다.
1.1 char (character, 문자형&정수형)
character 를 줄여서 char로 사용. 1byte , 8bit 문자를 저장할때 사용 char 문자자료형은 앞에 signed 가 생략된
char이다. 사용할때 signed char 로 사용해도 같다.
unsigned char 부호가 없는 char형 이기 때문에 표현할수 있는 범위가 숫자가 더 커진다.
1 2 3 4 | char ch1 = 'C'; signed char ch2 = 'D'; unsigned char uCh = 'AB'; //부호가 없는 unsigned char 는 두개의 값을 저장할수있다. | cs |
char 의 범위는 -128 ~ 127
unsigned char 의 범위는 0 ~ 255
c언어에서 char형은 ' ' 작은따옴표로 묶어서 표현한다. ※ 주의
1.2 short int (short Integer, 정수형)
short int는 int를 생략 할 수 있다. 2byte, 16bit
1 2 3 4 | short num1 = 10; short int num2 = -10; unsigned short num3 = 30; | cs |
short 의 범위는 -32,768~32,767
unsigned short 범위 0~65,535
1.3 int (Integer, 정수형)
int 의범위 -2,147,483,648 ~ 2,147,483,647
1.4 float (4byte 32bit)
유효자릿수 7
1.5 double (8byte 64bit)
유효자릿수 16
1.6 long double (8byte 64bit)
유효자릿수 16
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include <stdio.h> int main(void) { // 자료형(Data Type) // Character(문자) : 문자 1개 저장 // 정수 저장, 사칙연산 가능 // ASCII code char c = 'a'; // Decimal : 10진법 // 1byte == 1bit printf("c : %c(%d)\n", c, c); printf("char Size : %d byte\n", sizeof(char)); // short int(Integer, 정수) short s = 5; printf("s : %i\n", s); printf("short Size : %d byte\n",sizeof(short)); // int는 CPU가 처리하는 가장 기본적인 단위 // 32bit CPU에서는 4byte // 64bit CPU에서는 8byte int i = 10; printf("i : %i\n", i); printf("int Size : %d byte\n", sizeof(int)); // long int long l = 100; printf("l : %li\n", l); printf("long Size : %d byte\n", sizeof(long)); long long int ll = 10000; printf("long long Size : %d byte\n", sizeof(long long)); // 실수 // 부동소수점 (Floating-Point) // 리터럴 상수 (Literal Constant) float f = 3.14f; f = 12.34f; //3.14f = 12.34f; printf("f : %f(%d)\n", f, (int)f); printf("float Size : %d byte\n", sizeof(float)); // 두배 정밀도 부동소수점 // Double-Precision double d = 123.456; printf("d : %lf\n", d); printf("double Size : %d byte\n", sizeof(double)); //형변환(Type Casting, Conversion) int tmp = (int)f; printf("tmp : %d\n", tmp); //부동소수점 오차 float forf = 0.0f; for (int i = 0; i < 10000; ++i) { //forf = forf + 0.0001f; forf += 0.0001f; } printf("forf : %f\n", forf); signed char sc = 200; unsigned char usc = 200; printf("sc : %i\n", sc); printf("usc : %i\n", usc); return 0; } | cs |
출력결과 :