비트 연산자는 피연산자를 비트단위로 논리 연산한다.
- 비트 연산의 우선순위: 논리 연산 < 비트 연산 < 비교 연산
1. | (OR), &(AND, ^(XOR)
| (OR 연산자): 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외는 0을 얻는다.
& (AND 연산자): 피연산자 양 쪽이 모두 1이어야만 1을 결과로 얻는다. 그 외는 0을 얻는다.
^ (XOR 연산자): 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 같을 때는 0을 얻는다.
2. ~ (Not, 비트 전환 연산자)
피연산자를 2진수로 표현했을 때, 0은 1로, 1은 0으로 바꾼다.
ex) 10진수 10을 비트전환 연산한 결과는 -11이 된다. 이 값은 10의 '1의 보수'이다.
3. << >> (쉬프트 연산자)
ex) 7 << 2 는 왼쪽 피연산자인 10진수 7의 2진수를 2자리 이동한다.
이 때, 자리이동으로 저장범위를 벗어난 값들은 버려지고 빈자리는 0으로 채워진다.
- >> 연산자
- 부호있는 정수는 부호 유지를 위해서 왼쪽 피연산자가 음수인 경우 빈자리를 1로 채운다.
x << n은 x * 2^n(제곱) 의 결과와 같다.
x >> n은 x / 2^n(제곱) 의 결과와 같다.
📌 Reference
- 남궁 선, 「자바의 정석」, 도우출판, 2018, p121~129
- TCP SCHOOL.com
반응형
'프로젝트 개발 기록 > [개발] java | spring' 카테고리의 다른 글
[Java] package와 import, 제어자 (1) | 2022.10.11 |
---|---|
[Java] 상속 (Inheritance), 오버라이딩, super, super() (0) | 2022.10.09 |
[Java] 클래스와 객체, 변수와 메서드, 오버로딩, 생성자 (0) | 2022.09.17 |
[프로그래밍 언어] Java (0) | 2022.07.09 |
댓글