본문 바로가기

언어공부/Java

자바 연산자 정리! 대입연산자/산술연산자/관계연산자(비교연산자)/조건연산자/논리연산자/증감연산자/비트단위연산자

자바의 여러가지 연산자에 대해서 정리해보자.

연산자와 피연산자

연산자(operator)는 특정한 연산을 나타내는 기호이다. 피연산자(operand)는 연산의 대상이다.

ex. x(피연산자)+(연산자)y(피연산자)

 

대입 연산자

대입 연산자(=)는 왼쪽에 있는 변수에 오른쪽에 있는 수식의 값을 계산하여 대입한다. 왼쪽은 반드시 변수여야 한다.

ex. int x=10;

 

+복합 대입 연산자

복합 대입 연산자는 +=처럼 산술연산자와 대입연산자를 합쳐놓은 연산이다. x+=y는 x=x+y와 같다.

산술 연산자

산술할 때 사용하는 연산자이다. 산술 연산자의 종류는 아래와 같다.

 

 

나눗셈 연산자(/)는 피연산자가 정수형일 때만 정수 나눗셈을 한다. 그 외에는 부동소수점 나눗셈을 한다.

ex. 6/4=1, 6.0/4=1.5

정수형 나눗셈에서 분모가 0이되면 컴파일 에러, 부동소수점 나눗셈에서 분모가 0이되면 InInfinity라고 뜬다.

관계연산자 (비교연산자)

피연산자들을 비교할 때 사용하는 연산자이다. 비교 연산자의 종류는 아래와 같다.

 

조건연산자 (삼항연산자)

조건연산자는 삼항연산자라고도 부르며, 조건식의 결과를 비교해서 결과에 따른 수식을 실행한다.

 

조건식 ? 수식1(조건식이 참일 때 실행) : 수식2(조건식이 거짓일 때 실행)

 

ex. int a=5, b=10,max=0;

    max=a>b? a : b; //조건식 a(=5)>b(=10)가 거짓이므로, max에 최대값인 b값을 저장함.

 

논리연산자

여러개의 조건을 조합하여 참인지 거짓인지 논리를 연산할 때 사용하는 연산자이다.

 

 

ex. (a>0&&a<11) : a가 0보다 크거나 11보다 작을 때 참. 추가로 &&연산은 앞의 조건이 거짓(false)이면 뒤의 조건과 관계없이 최종값이 false이므로 뒤의 조건을 실행하지 않음.

    (a==3||a==4) : a가 3이거나 4일때 참. 추가로 ||연산은 앞의 조건이 참(true)이면 뒤의 조건과 관계 없이 최종값이 true이므로 뒤의 조건을 실행하지 않음.

      a=!false : a는 false의 반대인 true가 됨. (boolean 형만 사용가능)

 

증감연산자

++기호나 --기호를 사용하여 변수의 값을 1증가 시키거나 1감소시키는 연산자이다.

 

 

증감연산자 코드를 작성해서 쉽게 이해해보자
실행값.

비트단위연산자

비트단위 연산자

 

비트단위 연산자의 예

^(XOR)연산자는 피연산자의 값이 서로 다를 때만 1(true), 같을 때는 0(false)이다.

~(NOT)연산자는 비트전환 연산자라고도 하며, 0은 1로 1은 0으로 바꾼다.

 

비트단위 이동(쉬프트) 연산자

 

비트 이동연산은 어렵다. 2진수변환 및 음수를 저장할때는 2의보수로 저장되는 것을 알아야한다.

 

음수 비트연산을 하려면 2의보수인 상태에서 비트 이동을 시킨후 다시 2진수로 바꿔줘야 한다.

2의 보수로 변환 방법은 2진수를 1의보수로 바꾼 뒤 그 값에서 +1을 해준 값이다.

1의보수는 2진수를 부호비트를 뺀 나머지 비트를 NOT연산 해주면된다.