연산자

자바 2020. 5. 18. 22:51

연산자의 정의

상수나 변수 값을 조작할 수 있도록 해주는 것을 연산이라고 하며 어떠한 연산을 할 것인지에 대한 기호로 연산자라는 것을 사용한다

일반적인 산수에서 사용하는 4칙 연산 외에 프로그래밍에서 특별하게 사용하는 연산자도 있다

연산자에는 연산자 우선순위라는 것이 있으며 이러한 연산자 우선순위를 잘 파악해야지만 원하는 결과를 얻어낼 수 있다

 

연산자의 종류와 우선순위

최우선 연산자 : . [ ] ( )

단항 연산자 : ! ~ +/- ++/-- (cast)

산술 연산자 : + - * / %

시프트 연산자 : << >> >>>

관계 연산자 : >  <  >=  <=  ==  !=

비트 연산자 : & ^ |

논리 연산자 : & | && ||

삼항 연산자 : 조건항 ? 항1 : 항2

배정 대입 연산자 : =  +=  -=  *=  /=  %=  <<=  >>=  ^=  &=

후위형 증감 연산자 : ++/--

 

십진수를 이진수로 변환하는 커맨드 : Integer.toBinaryString

 

최우선 연산자

. : 메모리에 생성된 객체의 멤버에 접근 등 특정 매개체의 하위의 접근할 때 사용하는 연산자

[ ] : 배열에서 요소에 접근하고자 할 때 사용하는 연산자

( ) :  수식에서 연산의 우선순위를 조정하고자 할 때 사용

 

단항 연산자

! : true를 false로 false를 true로 바꿔주는 연산자

~ : 숫자의 비트를 0은 1로, 1은 0으로 바꾸는 연산자

+/- : 숫자의 부호를 결정해 주는 연산자

++/-- : 값을 1 증가시키거나 감소시키는 연산자(전위형) a = a+1, a = a-1 대신 쓸 수 있다

(cast) : 값의 타입을 변경할 때 쓰는 연산자

 

산술 연산자

+ - * / : 일반적인 4칙 연산

% : 나머지를 구하는 연산자

 

시프트 연산자

<< : 비트를 오른쪽으로 이동시켜주는 연산(부호를 유지시켜준다, 곱하기 효과)

0000 1000 -> 0000 0100

1000 1000 -> 1100 0100

 

>> : 비트를 좌측으로 이동시켜주는 연산(나누기 효과)

0000 1000 -> 0001 0000

 

>>> : 비트를 오른쪽으로 이동시켜주는 연산(무조건 0으로 채워진다, 특수한 목적 연산에 사용)

0000 1000 -> 0000 0100

1000 1000 -> 0100 0100

 

관계 연산자

> : 좌측의 값이 우측보다 크면 true, 작거나 같으면 false

< : 좌측의 값이 우측보다 크면 false, 크거나 같으면 true

>= : 좌측의 값이 우측의 값보다 크거나 같으면 true, 작으면 false

<= : 좌측의 값이 우측의 값보다 작거나 같으면 true, 크면 false

== : 좌측의 값과 우측의 값이 같으면 true, 다르면 false

!= : 좌측의 값과 우측의 값이 다르면 true, 같으면 false

 

비트 연산자

& : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 둘 다 1일 경우만 1이 되는 연산자

1000 1000 & 0000 1000 = 0000 1000

 

| : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 둘 중에 하나라도 1이면 1이 되는 연산자

1000 1000 & 0000 1000 = 1000 1000

 

^ : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 두 비트가 같으면 0, 다르면 1이 되는 연산자

1000 1000 ^ 0000 1000 = 1000 0000

 

논리 연산자

&& : 연산자를 기준으로 좌측과 우측에 관계 연산자가 있을 경우 두 값이 모두 true이면 true, 하나라도 false이면 false를 반환한다 좌측의 연산 결과 값이 false라면 이후의 연산은 수행하지 않고 false를 반환한다

10 < 4 && 10 > 3 : false, 10 > 3 연산은 수행하지 않는다

 

& : 기본적인 연산은 &&와 같지만 좌측 연산 결과 값이 false라고 하더라도 이후의 연산을 모두 수행한다

10 < 4 & 10 > 3 false, 10 > 3 연산도 수행한다 

 

|| : 연산자를 기준으로 좌측과 우측에 관계 연산자가 있을 경우 두 값 중 하나라도 true면 true, 둘 다 false라면 false를 반환한다 좌측의 연산 결과 값이 true라면 이후의 연산은 수행하지 않고 true를 반환한다

10 > 3 || 10 < 4 true, 10 < 4 연산은 수행하지 않는다

 

| : 기본적인 연산은 ||와 같지만 좌측 연산 결과 값이 true라고 하더라도 이후의 연산을 모두 수행한다

 

3항 연산자

조건항? 항1 : 항2

조건 항의 결과 값이 true면 항1, false면 항2를 반환한다

 

배정 대입 연산자

a += 2 : a = a + 2

a -= 2 : a = a - 2

a *= 2 : a = a * 2

a /= 2 : a = a / 2

a %= 2 : a = a % 2

a <<= 2 : a = a << 2

a >>= 2 : a = a >> 2

a ^= 2 : a = a ^ 2

a &= 2 : a = a & 2

a != 2 : a = a ! 2

 

후위형 증강 연산자

-- / ++ : 자기 자신의 값을 하나 증강하거나 감소하는 연산자

기본적으로 전위형 증감 연산자와 같지만 다음과 같은 차이점이 있다

전위형 : ++a, --a 연산 작업을 수행 후 값을 전달한다 

후위형 : a++, a-- 값을 전달한 후 연산을 수행한다

 

int b = a++ : a 값을 b에 넣은 후 a 값을 증가

int b = ++a : a 값을 증가한 후 b에 넣어준다

'자바' 카테고리의 다른 글

Switch문  (0) 2020.05.22
IF문  (0) 2020.05.20
표준입출력  (0) 2020.05.16
변수와 자료형  (0) 2020.05.14
상수  (0) 2020.05.12
Posted by khon98
,