본문 바로가기
dev/java

[Java] 비트 연산자

by seohan1010 2024. 5. 18.

 

 

 

& | ^ ~ << >>

 

비트 연산자의 종류는 위와 같다.

 

 

 

| (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