종류 : ++, --
전위형 ++a / --a
값 변경 후 내용 진행
후위형 a++ / a--
내용 진행 후 값 변경
+, -, *, /, %
int / int
=> result = int
a % b
종류 : &&(AND), ||(OR), ^(XOR), !(NOT)
피연산자, 결과 : true or false
!a
a | ! |
---|---|
true | false |
false | true |
a && b
, a || b
, a ^ b
a | b | && | || | ^ |
---|---|---|---|---|
true | true | true | true | false |
true | false | false | true | true |
false | true | false | true | true |
false | false | false | false | false |
- 쇼트 서킷
첫번째 피연산자로 결과가 도출 가능하여 연산 생략되는 상태
OXR은 두 피연산자를 모두 확인해야 함으로 쇼트 서킷이 발생하지 않음true || (a > b) //앞 피연산자(true)에서 결과가 도출됨으로 //뒤 피연산자(a > b)는 계산하지 않음 true || ++a //쇼트 서킷으로 뒤 피연산자의 연산이 생략 //++ 연산이 실행 되지 않음 //필요에 의도적으로 순서 적용 해야함
종류 : &(AND), |(OR), ^(XOR), ~(NOT)
결과 : 0 or 1
~a
a | ~ |
---|---|
0 | 1 |
1 | 0 |
a & b
, a | b
, a ^ b
a | b | & | | | ^ |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
5 & 3 // (101) & (011) -> (001) => 1 5 | 3 // (101) | (011) -> (111) => 7 5 ^ 3 // (101) ^ (011) -> (110) => 6 ~5 // ~(00..010) -> (11..101) => -3
종류 : 크기 비교, 등가 비교
결과 = true or false
<, <=, >, >=
==, !=
종류 : <<, >>, >>>
a << 값
: 왼쪽으로 비트 이동, 비트 당 *2
a >> 값
: 오른쪽으로 비트 이동, 비트 당 1/2
a >>> 값
: 부호비트 포함 오른쪽으로 비트 이동, 특정 자리의 상태 확인용
int a = 5 //0000 0101 System.out.print( a >>> 3 & 1 ) // result = 0 // 시프트 연산 후 1과 비트 연산을 통행 특정 자리의 값 확인
종류 : =, +=, >>=, &=...
산술, 시프트, 비트 연산자
를 이용한 축약 가능
1. 단항
++, --, !, ~
2. 산술
( *, /, % ) > ( +, - )
3. 시프트
<<, >>, >>>
4. 비교
( <, <=, >, >= ) > ( ==, != )
5. 비트
& > ^ > |
6. 논리
&& > ||
7. 삼항
? :
8. 대입
=, +=, >>=, &=...
출처 : Do it! 자바 완전정복 3장