논리 연산자 - &&, ||, !
논리 연산자는 ‘&&’는 우리말로 그리고(AND)에 해당하며, 두 피연샂자가 모두 true일 떄 만 true를 결과로 얻는다. ‘||’는 또는(OR)에 해당하며, 두 피연산자 중 어느 한쪽 만 true이여도 true를 결과로 얻는다. 그리고 논리 연산자는 피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만 허용한다.
|| (OR결합) 피연산자 중 어느 한쪽 truen이면 true를 결과로 얻는다.
&& (AND결합) 피연산자 중 양쪽 모두 true이어야 true를 결과로 얻는다.
논리 연산자의 피연산자가 ‘참(true)’인 경우와 ‘거짓(false)’인 경우의 연산결과를 표로 나타내면 다음과 같다고 할 수 있다.
X | Y | X OR Y | X AND Y |
---|---|---|---|
true | true | true | true |
true | false | true | false |
false | true | true | false |
false | false | false | false |
위 표에서 보는 것이 잘 보기 힘들다면 다음 과 같이 생각하면 편 할 것이다.
X | Y | X OR Y |
---|---|---|
true | true | true |
true | false | true |
X | Y | X AND Y |
---|---|---|
false | true | false |
false | false | false |
OR(||)일 때는 x가 true 면 무조건 true
AND(&&일 떄는 x가 false면 무조건 false
논리 부정 연산자 !
이 연산자는 피연산자가 true면 false를, false면 true를 결과로 반환한다. 간단히 말해서 true와 false를 반대로 바꾸는 것이다.
X | !x |
---|---|
false | true |
true | false |
비트 연산자 & | ^ ~ << >>
비트 연산자는 피연산자를 비트단위로 논리 연산한다. 피연산자를 이진수로 표현했을 때 의 가 자리가 아래의 규칙에 따라 연산을 수행한다. 피연산자로 실수는 허용하지 않는다
X | Y | X OR Y | X AND Y | X XOR Y |
---|---|---|---|---|
1 | 1 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
0 | 0 | 0 | 0 | 0 |
비드 전환 연산자 ~
이 연산자는 피연산자를 2진수로 표연했을때, 0은 1로, 1은 0으로 바꾼다. 논리부전 연산자 “!”와 유사하다.
X | ~x |
---|---|
1 | 0 |
0 | 1 |
비트 전환 연산자 ~에 의해 ‘비트 전환’되고 아면, 부호있는 타입의 피연산자는 부호가 만대로 변경된다. 즉, 피연산자의 ‘1의 보수’를 얻을 수 있는 것이다. 그래서 비트전환연산자를 ‘1의 보수’연산자라고도 한다.
쉬프트 연산자 << >>
이 연산자는 피연산자의 각 자리(2진수로 표연했을 떄)를 ‘오른쪽(>>)’ 또는 ‘왼쪽(<<)’으로 이동한다고 해서 ‘쉬프트연산자’라고 이름을 지었다. 에를 들어 ‘8 << 2’는 왼쪽 피연산자인 10의 진수 8의 2진수를 왼쪽으로 2자리 이동한다. 이 때, 자리이동으로 저장범위를 벗어난 값들은 버려지고 0으로 채워진다.
- 10진수 8은 2진수로 ‘00001000’이다.
- ‘8 << 2’은 10진수 8의 2진수를 왼쪽으로 2자리 이동시킨다.
- 자리이동으로 인해 저장범위를 벗어난 값은 버려지고, 빈자라는 0으로 채워진다.
- ‘8 << 2’의 결과는 2진수로 ‘00100000’이 된다 (10진수로 32)
‘<<’연산자의 경우, 피연산자의 부호에 상관없이 각 자리를 왼쪽으로 이동시키며 빈칸을 0으로만 채워야 하지만 ‘>>’연산자는 오른쪽으로 이동시키기 때문에 부호있는 정수는 부호를 유지하기 위해 왼쪽 피연산자가 음수인 경우 빈자리를 1로 채운다.
- 작성자: LEE Young Bin
- Github : http://dudqls5271.github.io/2021/10/14/hexo_java06/
- 저작권 : 본 블로그의 모든 글은 특별 성명서를 제외하고, MIT 이선스 협약을 채택하고 있습니다. 복사 할 때 출처를 밝혀주세요!