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;
