제 3 장 연산자 (Operators).

Slides:



Advertisements
Similar presentations
3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
제 1장 C 언어의 소개.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
강좌명 : C++프로그래밍 (C++ Programming)
C 6장. 함수 #include <stdio.h> int main(void) { int num;
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
4장: 자료형과 수식.
구조체 struct 구조체와 함수 구조체의 배열, sizeof 연산자 열거형 enum 형 정의 typedef
제5장 제어명령
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
제 18 강 데이터 타입 타입, 변환, 캐스팅 shcho.pe.kr.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
Chapter 3 Flow of Control
프로그래밍2 및 실습 C언어 기반의 C++ 2.
제 3 장 상수와 변수
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
4장 제어문 선택문: if 문, if – else 문, switch 문
4주차: Data Types and Functions
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
adopted from KNK C Programming : A Modern Approach
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터 및 수식.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
Chapter 4 수식과 연산자.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
adopted from KNK C Programming : A Modern Approach
과학 탐구 토론 대회 1학년 2반 박승원 1학년 5반 권민성.
타입, 연산자 Chapter 5, 6 Kum Deuk Kyu , Ph. D. Spring 2015
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
4장 자료형.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
루프와 카운트 Looping and counting
연산자Operators C언어의 기본 구조 도서출판 한산 C언어의 기본 구조 1: #include <stdio.h>
박성진 컴퓨터 프로그래밍 기초 [04] 연산자 박성진
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
자바 5.0 프로그래밍.
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
3주차: Control Flow and Others
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
배열, 포인터, 함수 Review & 과제 1, 2.
Presentation transcript:

제 3 장 연산자 (Operators)

목 차 대입 연산자와 산술 연산자 관계 연산자와 논리 연산자 기타 연산자 연산자 우선순위

대입연산자와 산술연산자(1) 다른 고급 언어의 연산자와 달리 기계코드의 연산 : 명령어와 1대1로 대응 설계 : 연산 속도 빠름 다양한 연산자(48가지)를 지원 : 조건 연산자(? :), 증감 연산자(++, --), 복합 대입 연산자(+=, -=, *=, /=). - 프로그램의 간결성(conciseness) 획득 기반 대입(할당)연산자(assignment operators) ‘=‘ 사용 왼쪽에 변수, 오른쪽에 변수/상수/연산자 위치 산술연산자(arithmetic operators) 단항 연산자(unary operators) 이항 연산자(binary operators) 축약 연산자(증감연산자)

대입연산자와 산술연산자(2) 산술연산자 - 단항 연산자 단항 연산자의 종류 * & + , - ~ ! ++ , -- sizeof 의 미 기 능 결과형 * 주소형 형 포인터 형 & 주 소 형 변수 형에 대한 포인터 + , - 부호 변환 산술형 int, unsigned, long, double ~ 1의 보수 int, long, unsigned ! 논리 부정 산술 또는 포인터 int ++ , -- 감소 int, unsigned, long, double, pointer sizeof 크기 형 값 또는 형 명 unsigned

증감연산자-1 ⓐ 증가 연산자(increment operator) : ++ n의 값을 1씩 증가시키는 연산자 ① 전위 증가(pre-increment) 연산자 : ++i; 전위 변수(++i)는 변수의 값을 우선 1만큼 증가시킨 후에 변수의 값을 수식에 사용. (예) ++i; /* i = i + 1; */ e = ++i; /* ⓐ i = i + 1; ⓑ e = i; */ ② 후위 증가(post-increment) : i++; 후위 변수(변수++)는 변수의 현재 값을 그대 로 사용한 후에 변수의 값을 1만큼 증가. (예) i++; /* i = i + 1; */ e = i++; /* ⓐ e = i; ⓑ i = i + 1; */

증감연산자-2 ⓑ 감소 연산자(decrement operator) 변수의 값을 1씩 감소시키는 연산자. ① 전위 감소(pre-decrement) 연산자 : --i; 전위형(--i) 변수는 변수의 값을 우선 1만큼 감소시키 후에 변수의 값을 수식에 적용. (예) --i; /* i = i - 1; */ e = --i; /* ⓐ i = i - 1; ⓑ e = i; */ ② 후위 감소(post-decrement) 연산자 : i--; 변수는 변수의 현재 값을 그대로 사용한 후에 변수의 값을 1만큼 감소. (예) i--; /* i = i - 1; */ e = i--; /* ⓐ e = i; ⓑ i = i - 1; */

증감연산자-3 ⓒ 증감 연산자의 특징 코딩 매우 간단. 효율적인 기계 코드를 생성. 하드웨어 전문 분야에서는 편리. 한 함수내에서 같은 인수를 여러번 사용하 지 않는 것이 좋음. (예) printf("%d%d%d", i, ++i, i++);

대입연산자와 산술연산자(3) 산술연산자 - 이항 연산자 이항 연산자 이항 연산자는 두 개의 피연산자를 필요로 하는 연산자 + 일반적인 사칙 연산자와 나머지 연산자를 의미한다 문자 내용 예제 ( int a, b, c ) + 덧셈 c = a + b; - 뺄셈 c = a – b; * 곱셈 c = a * b; / 나눗셈 c = a / b; % 나머지 c = a % b;

대입연산자와 산술연산자(4) 산술연산자 - 축약 연산자 축약 연산자 (복합 대입 연산자) += a+=b a = a + b -= 문자 예제 내용 += a+=b a = a + b -= a-=b a = a – b *= a*=b a = a * b /= a/=b a = a / b %= a%=b a = a % b &= a&=b a = a & b (AND 연산) |= a|=b a = a | b (OR 연산) ^= a^=b a = a ^ b (XOR 연산)

관계연산자와 논리연산자(1) 관계 연산자(Relational Operators) 두 개의 피연산자 간의 대소 관계 비교 및 특정 조건 검사 결과 값은 참(true 또는 1), 거짓(false 또는 0) 문자 예제 내용 < a < b a가 b보다 작다 > a > b a가 b보다 크다 <= a <= b a가 b보다 작거나 같다 >= a >= b a가 b보다 크거나 같다 == a == b a와 b가 같다 != a != b a와 b가 같지 않다

관계연산자와 논리연산자(3) 논리연산자(Logical Operators) 여러 개의 조건을 결합하여 논리적 연산 수행 결과 값은 참(true 또는 1), 거짓(false 또는 0) 문자 예제 내용 && (AND) a = b && c b와 c가 모두 참이면 a=1, 아니면, a=0 || (OR) a = b || c b와 c가 모두 거짓이면 a=0, 아니면, a=1 ! (NOT) a = !b b가 참이면 a=0, b가 거짓이면 a=1

기타연산자(1) 비트연산자(Bitwise Operators) 비트(bit) 단위 연산 비트 단위 논리 연산자 비트 단위 이동 연산 비트 단위 논리 연산자 문자 예제 내용 & a = b & c; 비트단위 AND 연산 | a = b | c; 비트단위 OR 연산 ~ a = ~c; 비트단위 보수(반전) ^ a = a^b; 비트단위 XOR

기타 연산자(2) 비트 단위 논리 연산 결과 비트 단위 논리 연산의 예 x y x | y x & y x ^ y ~ x 1

기타연산자(3) 비트단위 이동(shift) 연산자 비트 단위로 왼쪽이나 오른쪽으로 이동 << 문자 예제 내용 << a = 10; a<<2 10을 이진화하여 좌측으로 2칸(bit) 이동 a = 40 10x22 연산결과와 동일 >> a = 10; a>>2 10을 이진화하여 우측으로 2칸(bit) 이동 a = 2 10/22 연산결과와 동일

기타연산자(4) 콤마 연산자 (=순차 연산자) Type 연산자 sizeof() 연산자 동일 성격, 동등 자격의 오퍼랜드를 나열할 때 사용 ex) 변수의 선언, 함수의 인수 구분 좌에서 우로 연산을 수행 반환값은 마지막에 수행한 연산의 결과 Type 연산자 sizeof() 연산자 자료형이나 변수, 상수 또는 수식의 연산 결과 등이, 기억장소에서 차지하는 영역의 크기를 바이트 단위로 구한다 컴파일러마다 자료형에 따른 기억장소의 크기가 다르다

기타연산자(5) Type 연산자(cont.) cast() 연산자 (=형 변환 연산자) 여러 피연산자의 자료형이 서로 다른 경우 연산을 실행하기 전에 자료형을 지정한 자료형으로 변환 올림변환(형 넓히기: promotion)의 경우 컴파일러에 의해 자동으로 실행될 수 있음 ex) int형 3 + double형 4.0 = 결과는 double형 7.0 내림변환(형 좁히기: demotion)의 경우 정보손실이 예상되므로 컴파일 중 경고가 발생할 수 있음 cast() 연산자는 올림변환이나 내림변환 모두 이용가능 주로 내림변환에서 자주 이용됨

기타연산자(10) Type연산자 예제 예제 3-13 cast() 연산자 #include <stdio.h> void main() { int i=36, j=5; printf(" %5.2f\n", (float)i / (float)j); /* 부동점 수로 변환 */ }

연산자 우선순위(1) 연산자 우선순위 우선순위가 높은 연산자부터 먼저 실행 우선순위가 같은 경우 연산자 분류에 따른 우선 순위 ( )안의 내용을 먼저 처리 결합법칙(계산방향)에 따라 실행 연산자 분류에 따른 우선 순위 대입<조건<논리<비트<관계<이동<산술<단항

연산자 우선순위(2) 높음 ↑ 중간 ↓ 낮음 1차 연산자 (), [], ., -> 단항 연산자 *, /, % 이항 연산자 우선 순위 형명칭 연산자 높음   ↑ 중간 ↓ 낮음 1차 연산자 (), [], ., -> 단항 연산자 *, /, % 이항 연산자 +, - <<, >> <, >, <=, >= ==, != & ^ | && || 조건 연산자 ? : 축약 연산자 =, +=, -=, *=, /=, &=, |=, ^= ,(comma)