연산자 Operator¶
부호 연산자¶
+
: 부호 유지-
: 부호 변경(int 등)
증감 연산자¶
++
: 1 증가--
: 1 감소
산술 연산자¶
+
: 덧셈-
: 뺄셈*
: 곱셈/
: 나눗셈%
: 나눗셈의 나머지
NaN & Infinity¶
/
또는%
연산에서 0으로 나눠지는 경우에는 예외가 발생하나,
좌측 피연산자가 실수 or 우측 피연산자가 0.0 또는 0.0f이면, Infinity/NaN이 된다
- Double.isInfinite()
- Double.isNaN()
비교 연산자¶
- 동등 비교
==
: 값이 같은지 검사!=
: 값이 다른지 검사
- 크기 비교
>
,>=
,<
,<=
논리 연산자¶
- AND 연산자(논리곱)
&&
: 앞의 피연산자가 false라면, 뒤의 피연산자를 평가하지 않고 바로 false 산출&
: 두 피연산자 모두를 평가해서 산출
- OR 연산자(논리합)
||
또는|
- XOR 연산자(배타적 논리합)
^
- NOT 연산자(논리 부정)
!
A | B | A && B | A ㅣㅣ B | ^A | !A |
---|---|---|---|---|---|
true | true | true | true | false | false |
true | false | false | true | true | |
false | true | false | true | true | |
false | false | false | false | false | true |
비트 논리 연산자¶
- bit 단위로 논리 연산 수행
2진수로 저장되는 정수 타입 (byte, short, int, long)만 피연산자가 될 수 있다
- AND 연산자(논리곱)
&
- OR 연산자(논리합)
|
- XOR 연산자(배타적 논리합)
^
- NOT 연산자(논리 부정)
~
A | B | A & B | A ㅣ B | ^A | ~A |
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | |
0 | 1 | 0 | 1 | 1 | |
0 | 0 | 0 | 0 | 0 | 1 |
비트 논리 연산자는 byte, short, char 타입 피연산자를 int 타입으로 자동 변환한 후 연산을 수행하므로 연산 결과는 Int 타입이다
비트 이동 연산자 Shift¶
a << b
: 정수 a의 각 비트를 b만큼 왼쪽으로 이동 (a*2^b
)
(오른쪽 빈자리는 0으로 채움)a >> b
: 정수 a의 각 비트를 b만큼 오른쪽으로 이동 (a/2^b
)
(왼쪽 빈자리는 최상위 부호 비트와 같은 값으로 채움)a >>> b
: 정수 a의 각 비트를 b만큼 오른쪽으로 이동
(왼쪽 빈자리는 0으로 채움)
대입 연산자¶
=
: 변수에 값 저장+=
,-=
,*=
,/=
,%=
: 산술 연산값 저장&=
,|=
,^=
: 논리 연산값 저장<<=
,>>=
,>>>=
: 비트 연산값 저장
삼항(조건) 연산자¶
연산자 우선순위¶
Quote
- 이것이 자바다 (저자: 신용권, 임경균 | 출판사: 한빛미디어)