비트연산자 & | ^ ~ << >>

이승민·2022년 12월 6일
0

Java의 정석

목록 보기
15/17


비트 연산자는 피연산자를 비트단위로 논리 연산한다. 피연산자를 이진수로 표현했을 때의 각 자리를 아래의 규칙에 따리 연산을 수행하며,
피연산자로 실수는 허용하지 않는다. 정수와 문자만 허용된다.

  • | (OR 연산자) : 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외에는 0

    • 주로 특정 비트의 값을 변경할 때 사용
  • & (AND 연산자) : 피연산자 양 쪽이 모두 1이어야만 1을 결과로 얻는다. 그 외에는 0

    • 특정 비트의 값을 뽑아낼 때 사용
  • ^ (XOR 연산자) : 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 그 외에는 0

    • 간단한 암호화에 사용

비트 전환 연산자 ~

피연산자를 2진수로 표현했을 때, 0은 1로, 1은 0으로 바꾼다. 논리부정 연산자 '!'와 유사

쉬프트 연산자 << >>

피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽(>>) 또는 왼쪽(<<)으로 이동한다.
ex) 8 << 2 : 10진수 8의 2진수를 왼쪽으로 2자리 이동한다. (00001000 -> 00100000)

  • x << n은 x * 2^n의 결과와 같다.
  • x >> n은 x / 2^n의 결과와 같다.

실행속도는 곱하기와 나누기 연산자보다 쉬프트 연산자가 빠르지만, 가독성 측면에서는 좋지 못하다.

profile
💻 끊임없이 성장하는 백엔드 개발자 💻

0개의 댓글