너와 나의 개발 고리

[JAVA] chap03 연산자_비트 논리 연산자 본문

JAVA/이것이 자바다

[JAVA] chap03 연산자_비트 논리 연산자

Oli-Viaaaa 2023. 8. 10. 13:23

비트 논리 연산자bit 단위로 논리 연산을 수행한다.

2진수로 저장되는 정수 타입(byte, short, int, long)만 피연산자가 될 수 있고

부동 소수점 방식으로 저장되는 실수타입(float, double)은 피연산자가 될 수 없다.

구분 연산식 결과 설명
AND
(논리곱)
1 & 1 1 두 비트 모두 1일 경우에만 연산 결과가 1
1 0 0
0 1 0
0 0 0
 
OR
(논리합)
1 | 1 1 두 비트 중 하나만 1이면 연산 결과는 1
1 0 1
0 1 1
0 0 0
 
XOR
(배타적 논리합)
1 ^ 1 0 두 비트 중 하나는 1이고 다른 하나가 0일 경우 연산 결과는 1
1 0 1
0 1 1
0 0 0
 
NOT
(논리 부정)

  ~
1 0 보수
0 1

 

논리 연산자는 byte, short, char 타입 피연산자를 int 타입으로 자동 변환한 후 연산을 수행한다.

따라서 연산 결과도 int 타입이 되므로 int 변수에 대입해야한다.

byte num1 = 45;
byte num2 = 25;
byte result = num1 & num2;	// 컴파일 에러
int result = num1 & num2;