& | ^ ~ << >>
비트 연산자의 종류는 위와 같다.
| (or 연산자)
: 한쪽 비트의 값이 1이면 1, 아니면 0
&(And 연산자)
: 양쪽 비트의 값이 1이면 1, 아니면 0
^ (XOR 연산자)
: 두 연산자의 값이 다를때만 1, 아니면 0
~(비트 전환 연산자)
: 피연산자의 비트를 0이면 1로, 1이면 0을 바꾼다.
<<, >> (쉬프트 연산자)
: 피연산자의 각 자리를 오른쪽 또는 왼쪽으로 이동 시킨다.
정수로 7, 11 이라는 숫자가 있을때
8비트로 각각 표현해주면
7 -> 00000111
11 -> 00001011
이렇게 된다.
| (or 연산자 사용시)
int test = 7 | 11;
같은 비트 자리에 하나라도 1이면 1이므로
00001111
즉, 15가된다.
&(And 연산자 사용시)
int test = 7 & 11;
같은 위치의 비트가 모두 1일때만 1이므로
위와 같은 결과가 나온다.
^(XOR 연산자 사용시)
int test = 7 ^ 11;
같은 위치의 비트가 다를때 1 이므로
위와 같은 결과가 나온다.
~ (비트 전환 연산자)
: 비트가 1이면 0으로, 0 이면 1로 바꾼다.
결과는 위와 같다.
---> 보수에 대한 개념을 알면 이해가 더 쉽다.
<<, >>(쉬프트 연산자)
: 전체 비트의 위치를 오른쪽 혹은 왼쪽으로 이동
쉬프트 연산시 비트의 이동이 저장범위를 벗어나게 되면은
해당 값은 버려진다.
'dev > java' 카테고리의 다른 글
[Java] spring boot - cors 에러 (0) | 2024.05.29 |
---|---|
[java] 참조변수 - 1 (0) | 2024.05.18 |