비트연산

: 정수형 변수를 사람이 사용하는 10진법으로 연산하는 대신 2진법인 비트 단위로 연산하는 기능
: 막상 실무에서는 거의 계산으로는 사용하지 않으며, 정수형의 값을 비트단위로 나누어 데이터를 좀 더 작은 단위로 담아 경제성을 높이기 위한 용도로 사용
: 비트연산의 부하도 무시할 수 없으므로 주로 플래그 값(여러 개의 상태 값을 0과 1로 담는 방법)을 처리하거나 네트워크 등에서 프로토콜의 데이터 양을 줄이기 위해 자주 사용

- 코틀린은 모든 정수형에 부호를 포함하므로 최상위 비트에는 데이터를 담지 않는 것이 좋다
bitwise shift 연산자
- shl : 부호비트를 제외한 모든 비트를 좌측으로 밀어주는 기능
- shr : 부호비트를 제외한 모드 비트를 우측으로 밀어주는 기능
- ushr : 부호비트를 포함하여 모든 비트를 우측으로 밀어주는 기능
bitwise 연산자
and

- 비트 확인 : 원하는 위치에 1을 넣어 비교해보면 1인지 0인지 확인 가능
- 비트 clear : 원하는 위치의 비트를 0으로 하고 싶을 때 0을 넣어 사용
or

- 비트 set : 원하는 위치의 비트를 1로 설정하고 싶을 때 1을 넣어 사용
xor

- 비트 비교 : 비교할 두 값이 비트별로 동일한지 비교할 때 사용
inv
: 모든 비트를 반전 시키는 역할 (0 -> 1, 1 -> 0)