JAVA

[JAVA의 정석] 연산자

seonzone 2021. 6. 16. 00:48
연산자

연산자 (Operator)

연산자와 피연산자

  • 연산자(operator) : 연산을 수행하는 기호(+,-,*./ 등)
  • 피연산자(operand) : 연산자의 작업 대상(변수* 상수, 리터럴, 수식)
종류연산자설명
산술 연산자+ - * / % << >>사칙 연산 (+,-,*,/) 과 나머지 연산(%)
비교 연산자> < >= <= == !=크고 작음과 같고 다름과 같음
논리 연산자&& || ! & | ^ ~그리고(AND) 와 또는 OR 으로 조건을 연결
대입 연산자=우변의 값을 좌변에 저장
기타(type) ?: instanceof형변환 연산자, 삼항 연산자, instanceof연산자

####

연산자의 우선순위와 결합규칙

식에 사용된 연산자가 둘 이상인 경우 , 우선순위는 수학의 사칙연산 우선순위와 같다.

만약 x + 3 * y 의 경우에는

3*y 가 먼저 실행되고 그 이후 x + 가 실행된다.

 

하지만 대입연산자 같은경우에는 반대로 처리된다.

만약 x = y = 3 인 경우

y=3 이후 x=y가 실행된다.

  1. 산술 > 비교 >논리 > 대입. 대입은 제일 마지막에 수행된다.
  2. 단항(1) ) 01 (2) ) 삼항 (3) . 단항 연산자의 우선순위가 이항 연산자보다 높다.
  3. 단항 연산자와 대입 연산자를 제외한 모든 언산의 진행방향은 왼쪽에서 오른쪽이다.

###

 

산술변환(usual arithmetic conversion)

일반 산술 변환이란? 연산 수행 직전에 발생하는 피연산자의 자동 형변환

  • 두 피연산자의 타입을 같게 일치시킨다(보다 큰 타입으로 일치).
  • 피연산자의 타입이 int보다 작은 타입이먼 int 로 변환된다.

 

단항 연산자

증감 연산자 ++ --

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

    j = ++i; 값이 참조되기 전에 증가시킨다

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

    j = i ++; 값이 참조된 후에 증가시킨다.

 

 

부호 연산자 + -

부호 연산자 '-' , '+ ' 는 피연산자의 부호를 반대로 변경한 결과를 반환한다.

 

 

사칙연산자

  • 사칙 연산자

    덧셈 , 뺄셈, 곱셈, 나눗셈이 있으며 일반적인 수학 수식이다. 하지만 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눈다면 실행 시 에러가 발생할 것이다.

  • 나머지 연산자 %

    나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다.

비교 연산자

  • 대소비교 연산자 < > <= >=

    비교연산자연산결과
    >좌변 값이 크면, true 아니면 false
    <좌번 값이 작으면, true 아니면 false
    >=좌변 값이 크거나 같으면, true 아니면 false
    <=좌변 값이 작거나 같으면, true 아니면 false

 

  • 등가비교 연산자 == !=

    비교연산자연산결과
    ==두 값이 다르면 true, 아니면 false
    !=두 값이 다르면 true, 아니면 false

     

논리 연산자

  • 논리 연산자 - &&, || , !

    || (OR 결합) 피연산자 중 어느 한 쪽만 true 이면 true를 결과로 얻는다.

    && (AND 결합) 피연산자 양쪽 모두 true이어야 true의 결과를 얻는다.

 

  • 논리 부정 연산자 !

    이 연산자는 피연산자가 true 이면 false 를, false면 true를 결과로 반환한다.

 

비트 연산자 & | ^ ~ << >>

 

  • | (OR언산자) 피언산자 중 한 쪽의 01101 .1 을 결과로 얻는다. 그 외에는 을 얻는다.
  • & (AND연산자) 띠연산자 앙 쪽이 모두 101 어야만 을 결과로 얻는다. 그 외에는 을 얻는다.
  • ^ (XOR연산자) 피언산자의 값이 서로 다를 때만 을 결과로 얻는다. 같을 때는 을 얻는다

 

  • 비트 전환 연산자 ~

    이 연산자는 피연산자를 2진수로 표현했을 때, 0은 1로, 1은 0으로 바꾼다. 논리부정 연산자 ! 와 유사하다.

  • 쉬프트 연산자 << >>

    이 연산자는 피 연산자의 각 자리 (2 진수로 표현했을 때)를 ‘오른쪽0))’ 또는 ‘왼쪽(< ()’으로 이동(shift)한다고 해서 ‘쉬프트 연산자(shift operator)’라고 이름 붙여 졌다.

    예를 들어 ‘8 <<2’는 왼쪽 피연산자인 10진수 의 진수를 왼쪽으로 자리 이통한다.