1. 비트연산자
"& | ^ ~ << >>"
1) & : 앰퍼샌드 (and)
- 이진수로 변환했을 때 둘다 11일때만 1이 나옴
- 11001 & 01011 -> 01001
2) | : 버티컬바 (or)
- 이진수로 변환했을 때 둘중 하나라도 1이면 1이 나옴
- 11001 | 01011 -> 11011
3) ^ : 캐럿 (xor)
- 값이 다르면 1을, 같으면 0이 나옴
4) ~ : not
- 뒤집어줌
5) << >> : left(right) shift
- 자릿수 전체를 왼쪽/오른쪽으로 주어진만큼 이동시킨다.
2. 꿀팁사용법
- boolean 연산자의 연산자로 그냥 &와 |을 사용해도 된다 (Java)
- 단축평가가 되지 않는다 (단축평가의 경우 뒤의 연산을 하지 않으므로, 뒤의 연산이 필요한 경우 예를들면 ++같은 경우엔 비트연산자를 사용할 수 있다.) (Java)
- 홀/짝일지 알아낼 경우 & 사용 가능 ex) if((i&1) == 1) 이렇게 하면 됨 (성능이 조금 빨라질 수 있다.)
3. 비트마스킹
- 가능과 불가능에 대한 쉬프트연산자를 활용해서 구조체 없이 구현 가능하다.
- 예를들면, 태블릿의 스펙이 지원되는지 안되는지의 여부를 간편하게 표시가 가능하다.
- 대입비트연산자를 통해 스펙의 변경 또한 가능하다.
- chatGPT한테 예시를 물어보자
'Backend - Java Spring > JAVA_강의' 카테고리의 다른 글
[JAVA얄코] 반복문 (0) | 2023.10.18 |
---|---|
[JAVA얄코] 조건문 (0) | 2023.10.17 |
[JAVA얄코] 타입추론 (var) (0) | 2023.10.12 |
[JAVA얄코] 배열 (0) | 2023.10.12 |
[JAVA얄코] 문자열의 포매팅과 null (0) | 2023.10.12 |
댓글