자바 Java/문법

비트 논리 연산자(&, |, ^, ~)

하나비 HANABI 2022. 1. 4. 10:21

비트 논리 연산자: 피연산자가 boolean타입일 경우 일반논리연산자, 정수타입일 경우 비트논리연산자 사용

비트 연산자는 피연산자를 int타입으로 자동 타입 변환 후 연산수행

 

&(AND) : 두 비트가 모두 1일 경우에만 연산 결과는 1 

|(OR) : 두 비트 중 하나만 1이면 연산 결과는 1 

^(XOR) : 두 비트 중 하나는 1이고 다른 하나가 0일 경우 연산 결과는 1 

~(NOT) : 보수 

public class bitWriteOp {

	public static void main(String[] args) {
		System.out.println("45 & 25 = " + (45 & 25));
		System.out.println("45 | 25 = " + (45 | 25));
		System.out.println("45 ^ 25 = " + (45 ^ 25));
		System.out.println("~45 = " + (~45));
		
		System.out.println(toBinaryString(45));
		System.out.println("&");
		System.out.println(toBinaryString(25));
		System.out.println("||");
		System.out.println(toBinaryString(45 & 25));
		
	}
	
	public static String toBinaryString(int num) {
		String str = Integer.toBinaryString(num);
		while(str.length() < 32) {
			str += "0";
		}
		return str;
	}

}

실행결과:

45 & 25 = 9
45 | 25 = 61
45 ^ 25 = 52
~45 = -46
10110100000000000000000000000000
&
11001000000000000000000000000000
||
10010000000000000000000000000000