Operator 연산(계산)을 위해 사용되는 부호 및 기호.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
연산자와 표현식 C H A P T E R 3. 소개 C 에는 많은 내장 연산자가 있다 프로그램에서 연산자는 데이터와 변수 조작에 사용 C 연산자의 분류 1. 산술 연산자 2. 관계 연산자 3. 논리 연산자 4. 대입 연산자 5. 증가 감소 연산자 6. 조건 연산자 7.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
/ 4강_연산자 4-1 할당연산자 4-2 사칙연산자 및 나머지 연산자 4-3 자동증감 연산자 4-4 비교 연산자 4-5 논리 연산자 4-6 부정 연산자 4-7 복합대입 연산자 /
Excel 일차 강사 : 박영민.
Chapter 7. 조건문.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
Lesson 5. 레퍼런스 데이터형.
Chapter 04 C 연산자의 이해.
4.1 자바 응용 프로그램 분석 4.2 식별자(identifier)와 예약어 4.3 변수와 자료형
Lesson 6. 형변환.
Java의 정석 제 3 장 연산자(Operator) Java 정석 남궁성 강의
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
Part 05 순수한 연산자 ©우균, 창병모 © 우균, 창병모.
3장 자바의 기본문법(2).
6장. printf와 scanf 함수에 대한 고찰
[INA470] Java Programming Youn-Hee Han
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 03. 변수와 연산자.
JA A V W. 03.
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Chapter 02. 자바 기본 문법.
8주차: Strings, Arrays and Pointers
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
1. 2진 시스템.
Chapter 07 비트와 여러 연산자.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
[ 단원 04 ] 반복과 배열.
제3장 함수와 배열수식 전진환
2부 기본 구조 2부에서는 자바 언어의 기본구조인 변수, 자료형, 연산자, 선택 및 반복논리, 배열 등에 관해 설명합니다
제5장 변수, 연산자, 수식.
Chapter08 JavaScript 시작하기
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Chapter 1 단위, 물리량, 벡터.
Lecture 02 프로그램 구조 및 문법 Kwang-Man Ko
Chapter 10 데이터 검색1.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
Numerical Analysis Programming using NRs
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 3장 연 산 자 연 산 자 의 종 류 연 산 자 우 선 순 위 형 변 환.
13. 포인터와 배열! 함께 이해하기.
6 객체.
3장 자바의 기본문법(2).
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Operator 연산(계산)을 위해 사용되는 부호 및 기호

1. 연산자의 우선 순위와 종류 1) 피 연산자의 개수에 따른 연산자의 종류 2) 용도에 따른 연산자 및 우선 순위 단항 연산자: 피 연산자가 1개인 연산자 이항 연산자: 피 연산자가 2개인 연산자 삼항 연산자: 피 연산자가 3개인 연산자 2) 용도에 따른 연산자 및 우선 순위 종류 연산자 결합 방향 최우선 (), [] -> 단항 연산자 ++, --, +, -, (type), !, ~ <- 산술 연산자 %, /, *, +, - 시프트 연산자 >>, <<, >>> 관계 연산자 <, <=, >, >=, instanceof, ==, != 논리 연산자 &, ^, |,, ~ &&, || 삼항 연산자 ? : 대입 연산자 =, +=, -=, *=, %=, /=, >>=, <<= 콤마 연산자 ,

2. 최우선 연산자 1) ( ) 연산자 우선 순위 변경을 위해 사용 2) [ ] 연산자 배열의 크기나 첨자를 나타낼 때 사용

3.단항(Unary) 연산자 1)~ 틸드 2)! 3)부호 +, - 1의 보수를 구해주는 연산자. 모든 비트의 값을 반대로 표현해서 정수로 리턴합니다. 양수의 1의 보수는 부호는 음수가 되고 절대값은 1증가 음수의 1의 보수는 부호는 양수가 되고 절대값은 1감소 2)! 자바에서는 boolean에서만 사용이 가능 NOT(true -> false로 false -> true) !true -> false 3)부호 +, - +: 형식적으로 제공 -: 2의 보수 연산자, 부호 바꿈 연산자

실습(Unary.java) public class Unary { public static void main(String args[]) { int a = 10, b = -10; boolean c = true, d = false; System.out.println("a= " + a + "\t b=" + b + "\t c=" + c + "\t d=" + d); System.out.println("~a=" + ~a); // -11 1의 보수 연산(양수-> 음수 부호가 바뀌고 1증가됨) System.out.println("~b=" + ~b); // 9 음수-> 양수 부호가 바뀌고 1감소됨 System.out.println("!c=" + (!c) + "\t !d = " + (!d)); System.out.println("+a=" + (+a) + "\t +b = " + (+b)); System.out.println("-a= " + (-a) + "\t -b = " + (-b)); }

3.단항(Unary) 연산자 4) 증감연산자: ++, -- 정수 변수에만 사용할 수 있는 연산자 4) 증감연산자: ++, -- 정수 변수에만 사용할 수 있는 연산자 단항 연산자는 피 연산자의 오른쪽에 위치하지만 ++와 –연산자는 왼쪽과 오른쪽 모두 가능 ++: 변수의 값을 1 증가 --: 변수의 값을 1 감소 증감 연산자는 어느 위치에 놓는가에 따라서 수행 결과가 달라질 수 있습니다. 증감 연산자를 앞에 놓으면 전위 연산(prefix)이라 하고 뒤에 놓으면 후위 연산(postfix)이라고 합니다. 전위 연산은 증감을 먼저 하고 명령을 수행하게 되며 후위 연산은 명령을 수행한 후에 증감 을 하게 됩니다.

실습(Fix.java) public class Fix { public static void main(String args[]) { int a=10; System.out.println("a = " + a); System.out.println("후위 연산 a = " + a++); // 증감을 하기 전에 명령문을 먼저 처리하므로 10 출력 // 연산 후의 결과는 11 a = 10; System.out.println("전위 연산 a = " + ++a); // 증감을 한 후에 명령문을 처리하므로 11 출력 }

4.산술 연산자 사칙연산자(+, -, *, /), 나머지 연산자(%)는 두 개의 피 연산자를 가지는 이항연산자이며 산술 연산자는 피 연산자의 크기가 4byte보다 작으면 4byte(int형)로 변환한 다음에 연산을 수행합니다. 산술 연산자는 연산을 수행하기 전에 피 연산자들의 데이터 형을 일치 시킨 후 연산을 합니다. 서로 다른 자료형 사이의 연산의 경우에는 더 큰 자료형으로 자료형을 변경해서 연산을 수행합니다. 정수와 정수의 나눗셈을 하면 결과가 정수로 나와야 하므로 몫만 나오게 되며 소수는 버려지게 됩니다. % 연산자는 정수 사이의 연산에서만 의미를 갖습니다. % 연산자는 주기적인 작업(그룹화)이나 Transcription Error 제거를 위한 곳에서 많이 사용됩니다. 양수의 나머지는 양수만 나오지만 음수의 나머지를 구하게 되면 양수로 나오지 않고 음수로 나옵니다.

실습(Error.java) public class Error { public static void main(String[] args) { byte a = 10; byte b = 20; byte c = a + b; // 이 때 a 와 b가 모두 int 형으로 변환되어 연산하고 // 따라서 연산의 결과도 int 형이 되므로 대입 불가능 // byte c = (byte)(a + b); 으로 수정하던지 // int c = a + b;로 수정하면 에러가 없어짐 System.out.println(c); }

실습(Arithmetic.java) public class Arithmetic { public static void main(String args[]) { int a = 11, b = 2; int add = a + b; int sub = a - b; int mul = a * b; int div = a / b; int mod = a % b; System.out.println("a+b=" + add); System.out.println("a-b=" + sub); System.out.println("a*b=" + mul); System.out.println("a/b=" + div); System.out.println("a/b=" + (float) a / b); System.out.println("a%b=" + mod); //양수와 음수 사이에서의 나머지 System.out.println("5%-2=" + (5%-2)); //음수와 양수 사이에서의 나머지 System.out.println("-5%2=" + (-5%2)); //음수와 음수 사이에서의 나머지 System.out.println("-5%-2=" + (-5%-2)); }

5.Shift 연산자 <<, >>, >>> Shift 연산자는 정수형 데이터에만 사용할 수 있으며 피 연산자의 각 자리(2진수 로 표현했을 때)를 오른쪽 또는 왼쪽으로 이동(shift)한다고 해서 Shift 연산자(shift operator)라고 합니다. 오른쪽으로 n 비트를 이동하면 피 연산자를 2의 n승으로 나눈 것과 같은 결과를 얻을 수 있고 왼쪽으로 n자리를 이동하면 2의 n승으로 곱한 것과 같은 결과를 얻을 수 있습니다. "<<"연산자의 경우 피 연산자의 부호에 상관없이 자리를 왼쪽으로 이동시키며 빈칸을 0으로만 채우면 되지만, ">>"연산자는 음수인 경우 부호를 유지시켜주기 위해서 음수인 경우 빈자리를 1로 채우게 됩니다. 반면에 ">>>"연산자는 부호에 상관없이 항상 0으로 빈자리를 채워줍니다. 그렇기 때문에, 음수에 ">>>"연산을 행한 후, 10진수로 변환해 보면, 뜻밖의 결 과를 얻게 될 것입니다.

5.Shift 연산자 "<<", ">>"연산자와는 달리 ">>>"연산자의 결과는 10진수 보다는 2진수로 표현 했을 때 기호로서 더 의미를 가지므로 10진 연산보다는 비트연산(2진 연산)에 주로 사용됩니다. 미는 비트 수 n의 값이 자료형의 bit수 보다 크면 자료형의 bit수로 나눈 나머지 만큼만 이동합니다. 예를 들어 int형의 경우, 4byte(32bit)이므로 1000 >> 32는 수행하면 아무 일도 하지 않습니다. 1000 >> 35는 35를 32로 나눈 나머지인 3만큼만 이동하는 1000 >> 3을 수행합 니다.

실습(Shift.java) public class Shift { public static void main(String args[]) int temp; // 계산 결과를 담기 위한 변수 System.out.println(-8); System.out.println(Integer.toBinaryString(-8)); // Integer.toBinaryString은 매개변수를 2진 문자열로 변경해주는 메서드 입니다. temp = -8 << 2; System.out.println( "-8 << 2 = " + temp); System.out.println(Integer.toBinaryString(temp)); temp = -8 >> 2; System.out.println( "-8 >> 2 = " + temp);

실습(Shift.java) System.out.println(-8); System.out.println(Integer.toBinaryString(-8)); temp = -8 >>> 2; System.out.println( "-8 >>> 2 = " + temp); System.out.println(Integer.toBinaryString(temp)); //33번 shift 인 경우 33이 32보다 크거나 같으므로 32로 나눈 나머지인 1번만 수행 temp = 4 << 33; System.out.println("4 << 2 = " + temp); }

6. 관계 연산자 관계 연산자는 이항 연산자로 피 연산자들을 비교하는 연산자 연산의 결과는 boolean(true 아니면 false) <, >, <=, >= 두 피 연산자의 크기를 비교하는 연산자입니다. 기본형 중에서는 boolean형을 제외한 나머지 자료형에 다 사용할 수 있고 참조형에는 사용할 수 없습니다. ==, != 두 피 연산자에 저장되어 있는 값이 같은지,또는 다른지를 비교하는 연산자입니다. 대소비교연산자(<, >, <=, >=)와는 달리 기본형은 물론 참조형에 사용할 수 있습니다. 기본형의 경우 변수에 저장되어 있는 값이 같은지를 알 수 있고 참조형의 경우 객체의 주소(해시) 값을 저장하기 때문에 두 개의 피 연산자(참조변수)가 같은 메모리의 주소를 가리키는 지 알 수 있습니다. 기본형과 참조형 간에는 저장되는 데이터가 다르기 때문에 등가비교 연산자(==, !=)의 피 연산자로 기본형과 참조형을 함께 사용할 수는 없습니다. boolean은 다른 자료형과 비교할 수 없습니다. instanceof: 참조형의 경우 어떤 타입인지 확인 해주는 연산자

실습(Relation.java) pan:true pan:false public class Relation { public static void main(String[] args) boolean pan; int n = 10; float f = 10.0f; pan = 10 > 3; System.out.println("pan:" + pan); pan = 10 == 3; //서로 다른 자료형이지만 숫자 타입이므로 비교가능 pan = n == f; } pan:true pan:false

7.논리 연산자 논리 연산자는 이항 연산자로 조건의 참, 거짓을 비교하는 조건 논리 연산자와 비 트 단위로 연산을 수행해서 결과를 리턴하는 비트 논리 연산자로 나뉘게 됩니다. ||, && 연산자(조건 논리 연산자) ||, && 연산자는 피 연산자로 boolean형 또는 boolean형 값을 결과로 하는 연산식이나 메서드 호출 만을 허용 조건문과 반복문에서 조건식 간의 결합에 사용 그리고, "&&"가 "||" 연산보다 우선순위가 높으므로 한 조건식에 "&&"와 "||" 가 함께 사 용될 때는 괄호를 사용해서 우선순위를 명확히 해주는 것이 좋습니다. || (OR결합) - 피 연산자 중 한 쪽만 true이면 true를 결과로 얻게 됩니다. &&(AND결합) - 피 연산자 양쪽 모두 true이어야 true를 결과로 얻게 됩니다. Dead Code: 결코 수행될 수 없는 코드로 ||의 앞쪽 조건이 참이 되면 뒤의 조건은 조사 할 필요가 없어지며 &&의 앞쪽 조건이 거짓이면 뒤의 조건은 조사할 필요가 없어집니다. Don’t Care라고도 합니다.

실습(Logical.java) public class Logical { public static void main(String[] args) boolean pan; pan = 10 > 3 && 3 < 10; System.out.println("pan:" + pan); pan = 10 > 3 || 3 < 10; }

7.논리 연산자 |, &, ^, ~ 연산자(비트 논리 연산자) 피 연산자끼리 이진 비트연산을 수행해서 결과를 돌려주는 연산자 실수형인 float와 double을 제외한 모든 숫자형(정수형)에 사용가능하며 정수끼리 연산 을 수행하면 정수로 boolean 끼리 연산을 하면 boolean으로 결과를 리턴 |(OR연산자) - 피 연산자 중 한 쪽의 값이 1이면, 1을 결과로 1을 얻고 그 외에는 0을 얻 게됩니다. &(AND연산자) - 피 연산자 양 쪽이 모두 1이어야 1을 결과로 얻고 그 외에는 0을 얻게 됩니다. ^(XOR연산자) - 피 연산자의 값이 서로 다를 때만 1을 결과로 얻고 그 외에는 0을 얻게 됩니다. ~(NOT 연산자) – 1의 보수를 구해주는 연산자

실습(Bit.java) public class Bit { public static void main(String[] args) int x = 3; int y = 5; System.out.println("x는 " + x + "이고, y는 " + y +"일 때, "); System.out.println("x | y = " + (x|y)); System.out.println("x & y = " + (x&y)); System.out.println("x ^ y = " + (x^y)); System.out.println("~x = " + ~x); System.out.println("true | false = " + (true|false)); System.out.println("true & false = " + (true&false)); System.out.println("true ^ false = " + (true^false)); }

8.삼항 연산자 삼항 연산자는 조건 연산자라고도 하며 3개의 피 연산자를 필요로 하게 되는데 첫 번째 피 연산자는 조건이며 두 번째 피 연산자는 조건이 true일 때 반환 값이고 세 번째 피 연산자는 조건이 false일 때 반환 값입니다. 기본형식 조건식? 식1: 식2

실습(Condition.java) public class Condition { public static void main(String[] args) { int a = 10, b = 11; int max, min; max = a > b ? a : b; min = a < b ? a : b; System.out.println("두 수 중 큰 값:" + max); System.out.println("두 수 중 작은 값:" + min); }

9. 대입 연산자 대입 연산자는 변수에 값 또는 수식의 연산결과 또는 메서드의 수행 결과를 저장 하는데 사용됩니다. 대입연산자의 왼쪽에는 반드시 변수가 위치해야 하며 오른쪽에는 리터럴이나 변 수 또는 수식 및 메서드 호출구문이 올 수 있습니다. 대입 연산자는 모든 연산자들 중에서 가장 낮은 연산순위를 가지고 있기 때문에 제일 마지막에 수행됩니다. 연산진행방향이 오른쪽에서 왼쪽이기 때문에 x=y=3; 에서 y=3이 먼저 수행되고 그 다음에 x=y가 수행됩니다. 대입연산자는 다른 연산자와 결합하여 "op="와 같은 방식으로 사용될 수 있다. 예를 들면, i = i + 3은 i +=3과 같이 표현될 수 있습니다.

실습(Assign.java) public class Assign { public static void main(String[] args) int add,sub,mul, div; add = sub = mul = div =10; add +=10; sub -=10; mul *=10; div /=10; System.out.println("add:" + add); System.out.println("sub:" + sub); System.out.println("mul:" + mul); System.out.println("div:" + div); }