Download presentation
Presentation is loading. Please wait.
1
제1부 제2장 데이터 형, 선언 및 출력 제1부 기초 제2장 데이터형, 선언 및 출력
처음으로 배우는 C 프로그래밍 제1부 기초 제2장 데이터형, 선언 및 출력
2
데이터 형 C의 기본 데이터 형 : 문자형, 정수형, 부동소수점형, 배정밀도형 char(1byte) 문자형
제1부 제2장 데이터 형, 선언 및 출력 데이터 형 C의 기본 데이터 형 : 문자형, 정수형, 부동소수점형, 배정밀도형 char(1byte) unsigned char(1byte) short int(2byte) unsigned char(2byte) int(2byte) unsigned int(2byte) long int(4byte) unsigned long int(4byte) float(4byte) double(8byte) 기본 데이터형 문자형 실수형 정수형 처음으로 배우는 C 프로그래밍 제1부
3
데이터 형 정수형 저장공간과 저장할 수 있는 값의 범위 소수점이 없는 양수 또는 음수 +, - 부호를 포함할 수 있음
쉼표, 소수점, 달러 표시와 같은 특수한 기호는 사용 불가 최대값과 최소값이 제한되어 있음 컴파일러가 확보하는 저장공간의 크기에 따라 다름 예 : 5, -10, +25, 1000, 253, , +36 저장공간과 저장할 수 있는 값의 범위 저장공간 최대 정수 값 최소 정수 값 1 byte 2 bytes 3 bytes 처음으로 배우는 C 프로그래밍 제1부
4
데이터 형 부동소수점 및 배정밀도 수 지수 표현 소수점이 있는 양수 또는 음수 +, - 부호를 포함할 수 있음
쉼표, 소수점, 달러 표시와 같은 특수한 기호는 사용 불가 최대값과 최소값이 제한되어 있음 컴파일러가 확보하는 저장공간의 크기에 따라 다름 일반적으로 배정밀도 수의 크기는 부동소수점의 두배 예 : , 5., -6.2, , 0.0, -6.67, +2. 지수 표현 부동소수점수와 배정밀도수로 매우 큰 수나 매우 작은 수를 표현할 때 간결한 형태로 표현할 수 있도록 함 십진표현 지수표현 e3 e4 e-3 e-4 처음으로 배우는 C 프로그래밍 제1부
5
데이터 형 문자형 알파벳 문자(대문자, 소문자) 0에서 9까지 10개의 숫자 + $ . , - !와 같은 특수기호
문자상수 : 단일 따옴표 안에 포함된 문자나 숫자, 특수기호 (예) ‘A’ ‘$’ 저장방법 ASCII, EBCDIC와 같은 코드로 표현되어 저장 ASCII(American Standard Code for Information Interchange) EBCDIC(Extended Binary Coded Decimal Interchange code) 5 Bytes of Storage J O N E S The Letters “JONES” Stored Inside a Computer 처음으로 배우는 C 프로그래밍 제1부
6
데이터 형 예외 문자(Escape Sequences)
역슬래쉬(\)와 몇몇 문자들이 조합되어 특별한 의미를 가지는 문자들을 표현 C Escape Sequence Meaning Computer Code \b backspace \f from feed \n new line \r carriage return \\ backslash \’ single quote \” double quote 처음으로 배우는 C 프로그래밍 제1부
7
산술 연산자 덧셈, 뺄셈, 곱셈, 나눗셈에 사용되는 연산자 산술연산자는 두 개의 연산 항을 필요로 하는 이항 연산자
혼합형 수식 : 연산 항의 데이터 형이 다른 수식 혼합형 수식일 경우 결과 값의 데이터 형 모든 연산 항이 정수이면 정수 연산 항 중 어느 것이라도 부동소수점 또는 배정밀도 값이면 배정밀도수 기 능 연산자 덧 셈 뺄 셈 곱 셈 * 나눗셈 / 처음으로 배우는 C 프로그래밍 제1부
8
산술 연산자 정수 나눗셈 모듈러 연산자 : % 단항연산자 : - 정수와 정수의 연산 결과 값은 정수
정수와 정수의 나눗셈 결과 값은 정수가 되기 때문에 소수 부분은 버림 예 15/2 = 7 17/5 = 3 모듈러 연산자 : % 두 정수를 나눈 나머지를 구하는 산술 연산자 모듈러 연산자는 정수에서만 사용 9 % 4 = 1 17 % 3 = 2 1 % 2 = 0 단항연산자 : - 수치 연산 항 앞에 붙어 그 수의 반대 부호로 바꿈 처음으로 배우는 C 프로그래밍 제1부
9
산술 연산자 Operation Operator Type Operand Result Addition Subtraction
Multiplication Division Remainder Negation + - * / % Binary Both integers One operand not an integer integer Double precision One integer One floating point or double precision operand Unary 처음으로 배우는 C 프로그래밍 제1부
10
산술 연산자 산술 연산자를 포함하는 식을 쓸 때 규칙 연산자 우선 순위 및 결합성
두 개 이상의 이항 산술 연산자 기호는 결코 이웃하여 놓일 수 없음 괄호는 그룹을 형성하기 위해 사용되며, 괄호 안의 모든 식들이 먼저 계산됨 괄호는 곱셈을 대신할 수 없음 연산자 우선 순위 및 결합성 예 8 + 5 * 7 % 2 * 4 % 2 * 4 8 + 1 * 4 8 + 4 = 12 Operator Associativity unary - right to left * / % left to right left to right 계산순서 처음으로 배우는 C 프로그래밍 제1부
11
수치 결과 출력 산술 연산을 계산하고 그 결과를 출력하는 방법 printf()함수를 사용 예제
제어 문자열 : 어디에 어떤 결과가 출력되도록 할 것인가를 함수에게 알려 줌 값 : 출력되기를 원하는 값 예제 printf(“6과 15의 합은 %d입니다.”, 6+15); 결과 : 6과 15의 합은 21입니다. printf(“%f와 %f의 합은 %f입니다.”, 12.2, , ); 결과 : 와 의 합은 입니다. printf(“알파벳의 첫 번째 글자는 %c입니다.”, ‘a’); 결과 : 알파벳의 첫 번째 글자는 a입니다. 처음으로 배우는 C 프로그래밍 제1부
12
수치 결과 출력 프로그램 2-1 #include <stdio.h> void main(void) {
printf(“%f plus %f equals %f\n”, 15.0, 2.0, ); printf(“%f minus %f equals %f\n”, 15.0, 2.0, ); printf(“%f times %f equals %f\n”, 15.0, 2.0, 15.0 * 2.0); printf(“%f divided by %f equals %f\n”, 15.0, 2.0, 15.0 / 2.0); } 처음으로 배우는 C 프로그래밍 제1부
13
수치 결과 출력 형식출력 : 필드 폭 변경자 프로그램 2-2 프로그램 2-3 #include <stdio.h>
void main(void) { printf(“\n%d”, 6); printf(“\n%d”, 18); printf(“\n%d”, 124); printf(“\n---”); printf(“\n%d”, ); } 프로그램 2-3 #include <stdio.h> void main(void) { printf(“\n%3d”, 6); printf(“\n%3d”, 18); printf(“\n%3d”, 124); printf(“\n---”); printf(“\n%3d”, ); } 처음으로 배우는 C 프로그래밍 제1부
14
수치 결과 출력 정형화된 부동소수점 수는 두 개의 필드 폭 변경자를 필요
Specifier Number Display Comments |%2d| | 3| Number fits in field |%2d| |43| Number fits in field |%2d| |143| Field width ignored |%2d| Machine Floating point number dependent in an integer field |%5.2f| | 2.37| Field of 5 with 2 decimal digits |%5.2f| |42.30| Number fits in field |%5.2f| | | Field width ignored but fractional specifier used |%5.2f| Machine Integer in a floating dependent point field 처음으로 배우는 C 프로그래밍 제1부
15
수치 결과 출력 형식 변환자 왼쪽 정렬 : 기본 출력은 오른쪽 정렬, 마이너스(-) 기호 형식변환자를 사용하여 왼쪽으로 정렬
printf(“|%-10d|”, 59); | | 부호 표시 : +, - 기호를 출력 값 앞에 표시 printf(“|%+10d|”, 59); | | 처음으로 배우는 C 프로그래밍 제1부
16
정수의 입력, 저장, 출력 간의 관계 INTERNAL NUMBER CODE Octal Display Decimal
Convert a Base 8 Number Base 10 Base 16 Integer with a Leading 0 with No Leading 0x or 0 Leading 0x INTERNAL NUMBER CODE Convert to Form Octal Display Decimal Hecadecimal Input Is Either Octal, Decimal, or Hexadecimal Storage Is Always in Binary Display Is Either Octal, Deciaml, or printf(“% O“, …) printf(“% d“, …) printf(“% x“, …) 처음으로 배우는 C 프로그래밍 제1부
17
출력 Options Internal Character Code Printf (“%c”, . . .) Convert to a
Printf (“%o”, . . .) Base 8 Number Printf (“%d”, . . .) Base 10 Number Printf (“%x”, . . .) Base 16 Number Display Octal Decimal Hexadecimal 처음으로 배우는 C 프로그래밍 제1부
18
수치 결과 출력 프로그램 2-4 } 프로그램 2-5 #include <stdio.h> void main(void)
{ printf(“The decimal (base 10) value of 15 is %d.”, 15); printf(“\n The octal (base 8) value of 15 is %o.”, 15); printf(“\n The hexadecimal (base 16) value of 15 is %x.”, 15); } 프로그램 2-5 printf(“The decimal value of 025 is %d.\n”, 025); printf(“The decimal value of 0x37 is %d.\n”, 0x37); 처음으로 배우는 C 프로그래밍 제1부
19
수치 결과 출력 프로그램 2-6 #include <stdio.h> void main(void) {
printf(“The decimal value of the letter %c is %d.”, ‘a’, ‘a’); printf(“\nThe octal value of the letter %c is %o.”, ‘a’, ‘a’); printf(“\nThe hex value of the letter %c is %x.”, ‘a’, ‘a’); } 처음으로 배우는 C 프로그래밍 제1부
20
변수와 선언 컴퓨터에서 데이터를 사용하는 방법 변수의 정의 단순히 프로그래머가 컴퓨터 저장 공간에 지어준 이름
메모리 주소 대신 기호 이름이 사용되며, 이 기호 이름을 변수라고 함 Address : Storage for one integer Address : Storage for one integer result num1 num2 처음으로 배우는 C 프로그래밍 제1부
21
변수와 선언 변수의 이름을 정하는 규칙 반드시 문자나 밑줄로 시작해야 하며, 문자나 밑줄, 숫자들을 포함할 수 있음
키워드를 사용해서는 안됨 길이가 31개의 문자를 넘어서는 안됨 처음으로 배우는 C 프로그래밍 제1부
22
변수와 선언 선언문 정의문으로 사용되는 선언문의 예 int distance = 26;
각 변수에 저장될 수 있는 데이터형을 정의하고 이름을 붙이는 것 함수 내에 있는 선언문은 함수의 시작을 알리는 중괄호 바로 다음에 나타나며 세미콜론으로 끝나야 함 선언문의 일반적인 형태 function name() { int distance; float firstnum; other statements; } 정의문으로 사용되는 선언문의 예 int distance = 26; 처음으로 배우는 C 프로그래밍 제1부
23
변수와 선언 프로그램 2-7 #include <stdio.h> void main(void) {
float grage1; float grade2; float total; float average; grade1 = 85.5; grade2 = 97.0; total = grade1 + grade2; average = total/2.0; printf(“The average grade is %f\n”, average); } 처음으로 배우는 C 프로그래밍 제1부
24
변수와 선언 프로그램 2-8 #include <stdio.h> void main(void) { char ch;
printf(“\nThe character stored in ch is %c.”, ch); ch = ‘m’; printf(“\nThe character now stored in ch is %c.”, ch); } 처음으로 배우는 C 프로그래밍 제1부
25
변수와 선언 정수 변수 total 정의 Floating Point 변수 firstnum 정의 int total;
Tells the computer to 정수 변수 total 정의 Reverse enough room for an integer number int total; Tells the computer to “Tag” the first byte of reserved storage with the name total Tells the computer to Reverse enough room for an integer number float firstnum; One or more Storage locations Tells the computer to “Tag” the first byte of reserved storage with the name firstnum Floating Point 변수 firstnum 정의 처음으로 배우는 C 프로그래밍 제1부
26
Two or more Storage locations
변수와 선언 더블 변수 secnum 정의 Tells the computer to Reverse enough room for a double precision number double secnum; Two or more Storage locations Tells the computer to “Tag” the first byte of reserved storage with the name secnum Tells the computer to Reverse enough room for an character char ch; Tells the computer to “Tag” the first byte of reserved storage with the name ch 문자 변수 ch 정의 처음으로 배우는 C 프로그래밍 제1부
27
정수 한정자 Long, short, unsigned : int 선언문 앞에 붙여 표현할 수 있는 정수 숫자의 크기를 정하는 것
2Bytes Data Type Storage Number Range Integer Unsigned to 32767 (a total of 65,536 numbers) 0 to 65,535 처음으로 배우는 C 프로그래밍 제1부
28
정수 한정자 저장 크기 알아내는 방법 : sizeof() 연산자 프로그램 2-9 #include <stdio.h>
void main(void) { char ch; int num1; printf(“Bytes of storage used by a character : %d”, sizeof(ch) ); printf(“\nBytes of storage used by an integer : %d”, sizeof(num1) ); } 처음으로 배우는 C 프로그래밍 제1부
29
일반적인 프로그래밍 오류 프로그램에서 사용되는 모든 변수를 선언하는 것을 잊는 경우
선언된 것과 다른 형태의 데이터 형을 저장하는 경우 변수에 값을 대입하기 전에 변수를 사용하는 경우 정수 값을 잘못 나누는 경우 동일한 수식에서 만들어 낼 효과를 완전히 이해하지 못한 채 여러 데이터 형을 섞어 사용하는 경우 printf()함수에 호출시에 인자에 적당한 변환제어문자를 사용하지 않는 경우 printf()함수내의 제어문자열을 쉼표 앞에서 이중 따옴표로 닫지 않는 경우 printf()함수내의 인자들을 쉼표로 구분하는 것을 잊는 경우 처음으로 배우는 C 프로그래밍 제1부
30
요약 C의 기본 데이터 형(정수형, 부동소수점형, 배정도형, 문자형) printf()함수를 이용한 데이터 출력 변수의 선언
선언문의 역할 sizeof 연산자의 역활 처음으로 배우는 C 프로그래밍 제1부
31
기본 개념 비트 바이트 워드 주소 컴퓨터에서 가장 적은 저장 단위 8개의 비트를 모아 하나의 단위로 묶은 것
하나 또는 그 이상의 바이트들을 하나의 단위로 묶은 것 주소 컴퓨터의 메모리에서 특정한 바이트를 나타내는 번호 처음으로 배우는 C 프로그래밍 제1부
32
기본 개념 부호 비트 (Sign bit) 보수 R의 보수: N2 = Rn - N1, n은 N1의 자리수
0: 양수/1: 음수 보수 If there is a number N1 with radix R, there exists an another number N2 such that N1+N2 becomes a perfect numbers. R의 보수: N2 = Rn - N1, n은 N1의 자리수 N1 = 124, N2 = 876 such that N1+N2 = 1000 N1 = 1101, N2 = 0011 such that N1+N2 = 10000 (R-1)의 보수 : N2 = (Rn -1) - N1, n은 N1의 자리수 N1 = 124, N2 = 875 such that N1+N2 = 999 N1 = 1101, N2 = 0010 such that N1+N2 = 1111 처음으로 배우는 C 프로그래밍 제1부
33
기본 개념 2의 보수 2의 보수 변환을 위한 8비트 값 상자 10001101을 10진수로 변환
(-27) (26) (25) (24) (23) (22) (21) (20) 2의 보수 변환을 위한 8비트 값 상자 = -115 을 10진수로 변환 처음으로 배우는 C 프로그래밍 제1부
Similar presentations