본문으로 바로가기

 

우선연산자

  ( )  [ ]  .

가장 높음

단항연산자

  +  -  !  ~  ( )  ++  --

높음

산술연산자

  +  %  /  *  -

높음

쉬프트연산자

  <<  >>  >>>

높음

관계연산자

  >  <  >=  <=  ==  !=

높음

논리연산자

  &  ^  |  &&  ||

낮음

삼항연산자

  ?  :

낮음

대입연산자

  =  *=  /=  %=  +=  -=  <<=  >>=    >>==  &=  ^=  !=

낮음

 

1. 시프트 연산자

 

1-1 <<  좌 시프트 연산자

비트를 좌측으로 밀고 자리를 0으로 채운다.

 

  2 << 2 ( 2 비트는 0000 0010)

  0000 0010 -> 0000 1000 -> 8

 

 

1-2 >>  우 시프트 연산자

비트를 우측으로 밀어준다. 밀고 자리는 부호비트가 0이면 0, 1이면 1 채워준다.

 

  4 >> 2 (4 비트는 0000 0100)

  0000 0100 -> 0000 0001 -> 1

 

 

1-3 >>>  우 시프트 연산자2

비트를 우측 밀어준다. >> 연산자와 다른점은 호비트와 상관없이 빈자리를 무조건 0으로 채워준다.

 

  16 >>> 2 ( 4 비트는 0001 0000)

  0001 0000 -> 0000 0100 -> 4

 

 

2. 관계 연산자

 

2-1  관계연산자

관계 연산자는 좌측에 있는 변수 혹은 상수를 기준으로 해석하면 이해하기 쉽다.

 

  a >= b : a b보다 크거나 같다면

 

  a <= b : a b보다 작거나 같다면

 

  a == b : a b 일치한다면

 

  a != b : a b 일치하지 않는다면

 

 

 

 

3. 논리 연산자

 

3-1  비트논리 연산자(&, |, ^)

 

A

B

& (and)

| (or)

^ (xor)

0

0

0

0

0

1

0

0

1

1

0

1

0

1

1

1

1

1

1

0

 

& 연산자 : 비트가 모두 1일때만 1

| 연산자 : 비트중 하나만 1이어도 1

^ 연산자 : 비트가 같은때에는 0, 다를때는 1

 

3-2 AND결합(&&), OR결합(||) 연산자

 

  && : 연산식, 혹은 피연산자의 결합이 모두 true여야 true값을 return 한다.

    - ( 1 && 3>2 ) , ( ((2*3) > (2+3)) && true )

 

  || : 연산식, 혹은 피연산자의 결합이 둘중 하나만 true여도 true  값을  return 한다.

    - ( 0 || 1), ( false || true), ( (2 < 3) || (3 > 2) )

 

 

4. 삼항연산자

 

4-1 삼항연산자

 

세개의 피연산자를 필요로 하며, 조건식이 true일때의 return , false일때의 return 값으로 분리된다.

삼항연산자는 생각보다 많이 쓰이는데 간단한 if문을 삼항연산자 한줄로 대체하여 라인수를 줄일 있다.

 

(조건식) ? 1  :  2

  - int returnValue = ( 3 < 5 ) ? 10 : 0;

    : 3 5보다 작은 값이 맞기때문에 조건식은 true이고 true 해당하는 10 값이 return Value 변수에 대입된다.

 

 

5. 대입연산자

 

5-1 단순대입연산

 

대입연산자는 변수에 값이나 수식결과를 저장하기위해 사용된다. 대입연산자 좌측에는 저장될 변수가 위치되어야 하고

우측에는 상수, 혹은 수식이 있다.

 

  int resultInteger = 3;

 

  int returnValue = (3 + 5) * 2;

 

 

5-2 복합대입연산

 

대입연산자와, 다른연산자를 대입하여 사용하는 연산 표현이다. 아래 예시를 보면 이해하기 쉽다.

 

  result += 3; 

    - result 변수에 result + 3 수행한후 값을 result 대입하라는 의미이다. result = result + 3 단순대입 연산과 같은

      의미이다.

 

  result *= 10

    - result 변수에 result * 10 수행한 값을 result 대입하라는 의미이다. result = result * 10 단순대입 연산과 같은

      의미이다.