220 likes | 349 Views
3 장 . 변수와 자료형. 자료의 표현. 정수 (13) 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 부동소수 (13.625) 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 + 1*2 -1 + 0*2 -2 + 1*2 -3 문자 ( ‘ A ’ ) 1*2 6 + 0*2 5 + 0*2 4 + 0*2 3 + 0*2 2 + 0*2 1 + 1*2 0. 자료형의 종류 ( ex : Turbo C). 자료형의 종류 ( ex: Visual C). 상수와 변수. 상수
E N D
3장. 변수와 자료형 Ch.3
자료의 표현 • 정수 (13) 1*23 + 1*22 + 0*21 + 1*20 • 부동소수 (13.625) 1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 • 문자(‘A’) 1*26 + 0*25 + 0*24 + 0*23 + 0*22 + 0*21 + 1*20 Ch.3
자료형의종류 (ex: Turbo C) Ch.3
상수와 변수 • 상수 234, 12.34,‘A' • 변수 num = 25 + 27; num = num + 132; ( ‘=‘과 ‘==‘는 서로 다른 연산자 ) Ch.3
변수의 선언 • 자료형 변수명1,변수명2, ... • 오류 예 #include <stdio.h> void main() { x = 10; y = 20; z = x + y; } Ch.3
변수의 선언 • int a, b, c; • float d, e; • char f, g, h, i; • int j, k; Ch.3
정수형 자료 • +13 00000000 00001101 • 1의 보수 변환 11111111 11110010 +1 • 2의 보수 변환 11111111 11110011 ( -13 ) Ch.3
정수형 자료 • int 형의 범위(2 byte 경우) -215 ~ 215-1 • long 형의 범위(4 byte 경우) -231 ~ 231-1 Ch.3
정수형 자료 #include <stdio.h> /* 예제 3-1 */ void main() { int a; /* int형 정수 선언 */ long b; /* long형 정수 선언 */ a = 32767; b = 32767; printf("a=%d b=%d\n", a, b); a = a + 1; /* 오버플로우 발생 */ b = b + 1; printf("a=%d b=%ld\n", a, b); } Ch.3
정수형 자료 • unsigned int 형의 범위(2 byte 경우) 0 ~ 216-1 • unsigned long 형의 범위(4 byte 경우) 0 ~ 232-1 Ch.3
부동 소수형 • 27.47 0.58 -12. -125. • +2e24 45.E5 14.25e-3 5e24 • 부호, 가수부, 지수부로 표현 Ch.3
부동 소수형 • float 형의 표현 범위(4 byte) 3.4*10-38 ~ 3.4*1038 • double 형의 표현 범위(8 byte) 1.7*10-308 ~ 1.7*10308 • long double 형의 표현 범위(10 byte) 3.4*10-4932 ~ 3.4*104932 Ch.3
유효숫자 #include <stdio.h> void main() { float a, b; double c, d; a = 2.0e10 + 1.0; b = a - 2.0e10; /* float형의 계산 */ c = 2.0e10 + 1.0; d = c - 2.0e10; /* double형의 계산 */ printf("%f %f \n", b, d); } Ch.3
문자형 • 'A''$''7''-'')' • ASCII 코드 값으로 저장 '7' 55 • 1 byte 사용 Ch.3
문자형 #include <stdio.h> void main() { char a, b; a = '7'; /* character */ b = 7; /* integer */ printf("%d %d\n", a, b); /* 둘 다 정수형으로 출력 */ } // 55 7 Ch.3
문자의 계산 #include <stdio.h> /* 예제 3-4 */ void main() { char ch; ch = 'A'; printf("%c %d \n", ch, ch); printf("%c %d \n", ch+1, ch+1); // A 65 // B 66 } Ch.3
특수문자 상수 표현 • \뒤에 3자리(ASCII) 숫자 : ‘\012’ ( = ‘\n’ ) • 8진수로 처리(기본), 16진수(x 또는 X) #include <stdio.h> void main() { char beep; beep = '\007'; printf("%c", beep); // 삐~ 소리 } Ch.3
문자 상수 표현 • \n , \r , \t , \\ , \’ , \” • He says, "a \ is a backslash." printf("He says, \"a \\ is a backslash.\"\n"); Ch.3
문자열 • null 문자(‘\0’)를 무조건 추가 • "string", "1234", "A blank" • ‘A':문자 ‘A’ • "A":문자열 ‘A’‘\0’ (1 byte 더 요구) Ch.3
문자열 • "":널 문자열 (1byte 필요) • " ":공백문자들의 문자열 • "double quote \" included":“포함된 문자열 • "/* not a comment */":문자열 • /* "comment" */:주석문 Ch.3
기호 상수 • #define상수명 상수 #include <stdio.h> #define BEEP '\007' #define PI 3.14 #define ROK "Republic of Korea" void main() { printf("%c", BEEP); printf("%f\n", PI); // 3.140000 printf("%s", ROK); // Republic of Korea } Ch.3