본문 바로가기
Backend - Java Spring/JAVA_강의

[JAVA얄코] 비트연산자

by VictorMeredith 2023. 10. 12.

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

댓글