본문 바로가기

프로그래밍 언어/JAVA

JAVA 입문 - 비트 연산자

지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 항과 연산자

 

비트 연산자

지난 글까지 배운 연산이 변수나 상수에 대한 연산이라면 이번에는 비트 값을 기반으로 하는 

연산자를 배울 것이다.

비트 연산자는 말 그대로 비트 단위로 연산이 이루어지는 연산자이다. 

 

비트 논리 연산자

더보기

비트 단위로 &, |, ^, ~ 연산이 이루어 진다.

 

ㄱ) & 연산자

&(AND) 연산자는 두개의 비트 값이 모두 1인 경우에만 연산의 결과 값이 1이 된다.

 

ㄴ) | 연산자

|(OR) 연산자는 비트 값이 하나라도 1이면 연산 결과 값이 1이 된다.

 

ㄷ) ^ 연산자

^(XOR) 연산자는 두 개의 비트 값이 같으면 0, 다르면 1의 결과 값을 갖는다.

 

ㄹ) ~ 연산자

~(반전) 연산자는 비트값을 0은 1로, 1은 0으로 바꾸는 연산자이다. 반전 연산자라고도 한다.

 

비트 이동 연산자

더보기

비트 이동 연산자는 <<, >>, >>> 이렇게 세 가지이다. 시프트(shift) 연산자라고도 한다.

 

ㄱ) << 연산자

<< 시프트 연산자는 왼쪽으로 비트를 이동하는 연산자이다.

 

ㄴ) >> 연산자

>> 시프트 연산자는 오른쪽으로 비트를 이동하는 연산자이다.

왼쪽에 채워지는 비트 값은 부호 비트와 동일하다.

 

ㄷ) >>> 연산자

>>> 시프트 연산자는 >> 연산자와 동일하게 오른쪽으로 비트를 이동한다.

하지만 >> 연산자와는 다르게 왼쪽에 채워지는 비트는 모두 0이 된다.

 

연산자 우선순위

더보기

지금까지 공부한 연산자에는 우선순위가 있었다. 우선순위에 따라 컴퓨터가 연산을 수행하고

그 결과가 달라지기에 우선순위를 이해해야 한다. 연산자의 일반적인 우선순위는 다음과 같다.

1. 단항 연산자가 가장 높고, 이항, 삼항 연산자 순서이다.
2. 대입 연산자의 우선순위가 가장 낮다.
3. 산술, 관계, 논리, 대입 연산자 순서로 우선순위를 가지며 ()의 우선순위가 가장 높다.

참고 서적: 자바 프로그래밍 입문 - 박은종

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

JAVA 입문 - 반복문  (2) 2022.05.03
JAVA 입문 - 조건문  (2) 2022.05.02
JAVA 입문 - 항과 연산자  (8) 2022.05.02
JAVA 입문 - 형 변환  (0) 2022.05.01
JAVA 입문 - 상수와 리터럴  (0) 2022.05.01