728x90
반응형

연산자

 연산자 :: 어떠한 기능을 수행하는 기호

 피연산자 :: 연산자의 작업 대상 (변수, 상수, 리터럴, 수식)

연산자의 종류

 1. 단항 연산자 :: -(음수), ++, --, ~, !

 2. 이항 연산자 :: 산술 : +, -,  *, /, %, <<, >>

                         비교 : >, <, >=, <=, ==, !=

                         논리 : &&, ||, &, ^, |

 3. 삼항 연산자 :: 조건식 ? 식1 : 식2

 4. 대입 연산자 :: =

 

연산자의 우선순위

 

 

연산자의 우선순위

 괄호의 우선수위가 제일높다.

 산술 > 비교 > 논리 > 대입

 단항 > 이항 > 삼항

 연산자의 연산 진행방향 : 왼쪽에서 오른쪽 (→)

 단항 연산자와 대입 연산자의 진행방향 : 오른쪽에서 왼쪽(←)

 

예) 3*4*5 : 3*4가 먼저 계산되고, 3*4의 결과인 12*5가 계산된다.

예) x=y=3 : y에 3이 먼저 저장되고, y의 값(3)이 x에 저장된다.

예) -x+3 : 단항이 이항보다 먼저 계산된다.

예)x+3*y : 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산된다.

예) x+3>y-2 : 산술 연산자가 비교 연산자보다 먼저 계산된다.

예)x>3&&x<5 : 비교 연산자가 논리 연산자보다 먼저 계산된다.

예)int result=x+y*3 : 대입 연산자는 맨 뒤에 대입된다.

 

주의 해야 할 연산자의 우선순위 :: 아래와 같은 수식은 괄호를 사용하여 우선순이를 구분하는 것이 좋다.

 1. 쉬프트 연산자 ( >>, <<, >>> ) 는 덧셈연산자보다 우선순위가 낮다.

      예) x<<2+1 → x<<(2+1)과 같다.

 2. ||, |(OR)는 &&, &(AND)보다 우선순위가 낮다.

      예) x<-1 || x>3 && x<5  → x<-1 || (x>3 && x<5)와 같다.

 

 

 

증감 연산자

증가 연산자(++) :: 피연산자의 값을 1 증가시킨다.

감소 연산자(__) :: 피연산자의 값을 1 감소시킨다.

 

예) int i=2;

     int j=0;

     전위형 : j= ++i; → i=3,j=3

     후위형 : j= i++; → i=3,j=2

 ※ ++i와 i=i+는 같은 결과를 얻지만, ++i가 속도가 더 빠르고 코드를 간결하게 작성할 수 있기 때문에 더 많이 사용한다.

 

 

 

비트 전환 연산자

 비트 연산자 : ~

 2진수 표현에서 1은 0으로, 0은 1로 바꾸는 연산자

 정수형에서만 사용 가능하다

 

<양의 정수를 음의 정수로 표현하는 방법>

 

 

 

 

이항 연산자

 - 이항 연산자의 특징 : 이항 연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킨다.

 - int보다 크기가 작은 타입은 int로 변환한다 : (byte, char, short) → int

 피연산자 중 표현번위가 큰 타입으로 형변환한다.

     byte + short → int

     char + int → int

     float + int → float

     long + float → float

     float + double → double

 

예) byte + byte → int

     byte a = 10;

     byte b = 20;

     byte c = a+b;   //오류

     int c = a+b;      //정상

 

 

 

 

쉬프트 연산자

 << (왼쪽 쉬프트), >> (오른쪽 쉬프트)

 쉬프트 연산자는 2의 n승으로 곱하거나 나눈 결과와 같다.

 사칙연산의 곱셈이나 나눗셈보다 연산 속도가 빠르다.

 예) x<<n = x*2^n

      x>>n = x/2^n

      8<<2 = 8*2^2

      8>>2 = 8/2^2

 

728x90
반응형

+ Recent posts