비트 연산자
|와 &는 비트 연산자입니다.
- |
"0001 | 0000 == 0001”이 성립합니다. 즉, 하나의 비트 비교시 하나라도 1이라면 1이 됩니다.
- &
|와는 다르게 두 비트 모두가 1인 경우만 1이 됩니다.
즉, "0101 & 0100 == 0100”이 됩니다.
논리 연산자
|| 와 &&는 논리 연산자입니다.
- ||(or)
하나라도 true인 경우 true를 반환합니다. 즉, “true || false == true”가 됩니다.
- &&(and)
모두 true인 경우만 true를 반환합니다. 즉, “true && true == true, true && false == false”가 됩니다.
|와 &를 논리 연산자처럼 사용할 수 있을까요?
JAVA자바에서는 가능
여기를 참고하세요
C, C++에서는?
C나 C++에서는 Java처럼 사용할 수 없는데요. 그 이유는 아래와 같습니다.
if(int & int) 구문에서 int 값이 양수이면 참, 0이면 false라고 예상이 될텐데, if(2&4)의 경우 "100 & 010 == 000"이 되기 때문에 false가 되기 때문에 사용할 수 없습니다.
다만 if(bool & bool)이라면 사용은 가능합니다.
내용출처
마이너의 일상 블로그글