티스토리 뷰

JAVA/PRIMER

자바 비트 단위 연산

yulrang 2018. 4. 19. 13:54

& 연산

public class 연산자11 {

	public static void main(String[] args) {
		// & : 비트단위 앤드연산자
		// 피연산자가 비트열
		
		byte a = 0b1011;	//0b + 2진수
		byte b = 0b1110;
		System.out.println(a);
		System.out.println(b);
		System.out.println(a&b);
		
		// 1011
		// 1110 -> 비트단위로 &&연산 = 1010

	}

}

11

14

10






| 연산
public class 연산자12 {

	public static void main(String[] args) {
		// | : 비트단위 오어연산자
		// 피연산자가 비트열
		
		byte a = 0b1011;	//0b + 2진수
		byte b = 0b1110;
		System.out.println(a);
		System.out.println(b);
		System.out.println(a|b);
		
		// 1011
		// 1110 -> 비트단위로 ||연산 = 1111
	}

}

11

14

15






^ 연산

public class 연산자13 {

	public static void main(String[] args) {
		// ^ : 비트단위 XOR 연산자 (Exclusive Or : 배타적 논리합)
		
		byte a = 0b1011;	//0b + 2진수
		byte b = 0b1110;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(a^b);
		
		// 1011
		// 1110 -> 비트단위로 true,true / false,false면 0
		// 							  true,false면 1
		// 0101
	}

}

11

14

5






~ 연산
public class 연산자14 {

	public static void main(String[] args) {
		// ~ : 2의 보수(2' complete) 연산자
		
		// 1의 보수 : 1 = 0000 0001 / 1의보수 -1 = 1111 1110
		// 2의 보수 : 1의 보수에서 1을 더한것 / 1의 보수 = -2, 2의 보수 = -3
		byte a = 0b1110;
		
		System.out.println(a);
		System.out.println(~a);
		

	}

}

14

-15






<< 연산
public class 연산자15 {

	public static void main(String[] args) {
		String s = Integer.toBinaryString(10);
		System.out.println(s);
		
		
		// << : 왼쪽 shift 연산자
		// 비트열 << 비트수 -> 비트열을 비트수만큼 왼쪽으로 이동
		byte a = 0b1;
		System.out.println(a);
		System.out.println(a << 1);
		// 0000 0001
		// 0000 001
		// 0000 0010 -> 왼쪽으로 1씩 밀고 남은자리를 0으로 채움
		
		byte b = 0b10;
		System.out.println(b);
		System.out.println(b << 2);
	}

}

1010

1

2

2

8





>> 연산

public class 연산자16 { public static void main(String[] args) { byte a = 0b1011; System.out.println( a ); System.out.println( a >> 1 ); // 0000 1011 // 000 0101 // 밀어내느라 남은 빈자리에는 원래있던 숫자로 채움 // 0000 0101 byte b = 0b1011; System.out.println( b ); System.out.println( b >> 1 ); // 0000 1011 // 000 0101 // 밀어내느라 남은 빈자리에는 0으로 채움 // 0000 0101 } }

11

5

11

5


'JAVA > PRIMER' 카테고리의 다른 글

자바 switch문  (0) 2018.04.19
자바 형변환  (0) 2018.04.19
String 클래스  (0) 2018.04.19
자바 입출력 > 표준 입력 Scanner 클래스  (0) 2018.04.19
자료형  (0) 2018.04.19
댓글