비트연산자

Kyu·2021년 1월 5일
0
post-thumbnail

비트연산자

  • 데이터를 비트 단위로 연산
  • 0과 1로 표현이 가능한 정수타입만 비트 연산이 가능
  • 비트연산자는 이동연산자와 논리연산자로 구분

질문

지금 비트연산자라는 키워드 위주로 검색해서 공부해보고 있는데요.

비트연산자 & | ^ 같은 것들이 어떻게 정수끼리 계산되는지는 이해가 갑니다. 예를들어서 4 & 5 이면, 4는 100이고 5는 101이니 논리곱으로 결과는 4가 나오겠죠. 근데 boolean 같은 경우에는 계산이 어떻게되나요?

예를들어서 boolean[] answer = {bitA && bitB, bitA ^ bitB}; 라고는 선언문이 있을때, answer[0] 이 carry잖아요? &&는 일반논리연산자니까 AND 이니 +인거 같은데, 애초에 false와 true를 어떻게 덧셈을 해서 carry가 나오는건지 이해가 잘 안가요.

답변

B to Everyone (21:25)
&& (AND결합) : 두 조건이 모두 true일 때 true 반환
|| (OR결합) : 두 조건 중 하나라도 true일 떄 true 반환

골 to Everyone (21:26)
참이고 참일때만 참을 결론해준다! and가 + 라기 보다는 '이고' 라는 그냥 언어처럼?? 해석하시는게 이해하기 좋을 듯 싶어요

프 to Everyone (21:26)
+ 는 AND보다 OR 연산이랑 비슷할 것 같아요
AND는 * 연산자랑 비슷한 것 같고요

B to Everyone (21:28)
boolean[] answer = {bitA && bitB, bitA ^ bitB};
라는 우디의 코드에서
bitA && bitB 는 bitA나 bitB가 둘 다 true일 떄만 true 반환
bitA ^ bitB 는 bitA와 bitB가 서로 다를 때만 true반환
^는 boolean타입에 사용했을 때 논리연산을 수행하며, 두 값이 서로 다른 경우에만 true를 반환한다고 합니다


참고

이미지 출처: https://bjack.tistory.com/entry/C%EC%96%B8%EC%96%B4-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0%EC%9E%90-%EC%97%B0%EC%82%B0%EC%9E%90

[Java] 비트(Shift) 연산자 사용법 & 예제
TCP SCHOOL 논리 연산자

profile
TIL 남기는 공간입니다

0개의 댓글