반응형
논리 연산자 && ||
둘 이상의 조건을 그리고(AND), 또는(OR)로 연결
- && : 피연산자 양쪽 모두 true이면 true(AND 결합)
- || : 피연산자 중 어느 한쪽만 true이면 true(OR 결합)
효율적인 연산(short circuit evaluation)
논리 연산자의 경우 좌측 부터 우측으로 연산되며 좌측 연산이 false인 경우 우측 연산은 진행하지 않는다.
그러므로 true 확율이 높은 피연산자를 연산자 왼쪽에 놓아야 빠른 연산결과가 나온다.
논리 부정 연산자 !
피연산자가 true이면 false를, false이면 true를 반환
boolean a = true;
a = !a; // false
a = !a; // true
a = !!a; // true
비트 연산자 & | ^ << >>
피연산자를 비트 단위로 논리 연산
피연산자를 이진수로 표현해 연산 수행
- & : 피연산자 양 쪽이 모두 1이어야만 1을 결과로 얻는다. 그 외에는 0 (AND)
- | : 피연산자 중 한 쪽 값이 1이면 1을 결과로 얻는다. 그 외에는 0 (OR)
- ^ : 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 그 외에는 0 (XOR)
비트 전환 연산자 ~
피연산자를 2진수로 표현했을 때 0은 1로, 1은 0으로 반환
피연산자의 1의 보수를 얻을 수 있어 '의 보수 연산자 라고도 한다.
쉬프트 연산자 << >>
피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽(>>) 또는 왼쪽(<<)으로 이동
저장범위를 벗어난 값은 버려지고 빈자리를 양수일때는 0으로, 음수일때는 1로 채운다.
가독성의 문제로 빠른 실행속도가 요구되어지는 곳에만 쉬프트 연산자를 사용하는것이 좋다.
- x << n == x * 2의 n제곱
- x >> n == x / 2의 n제곱
반응형