파게로그
비트 연산 본문
package practice.bitmask;
public class BitwiseOperation {
public static void print() {
System.out.println();
}
public static void print(Object line) {
System.out.println(line);
}
public static void print(Object linePart1, Object linePart2) {
System.out.println(linePart1+": "+linePart2);
}
public static void main(String[] args) {
print("NOT, AND, OR, XOR");
// 19 = 10011(2), 114 = 1110010(2)
print("~19", ~19); // 1111 1111 1111 1111 1111 1111 1111 1100
print("19 & 114", 19 & 114); // 0010010
print("19 | 114", 19 | 114); // 1110011
print("19 ^ 114", 19 ^ 114); // 1100001
print();
print("SHIFT");
// 25 = 11001(2)
print("25 << 0", 25 << 0); // 11001
print("25 << 1", 25 << 1); // 110010
print("25 << 2", 25 << 2); // 1100100
print("25 >> 1", 25 >> 1); // 1100
print("25 >> 2", 25 >> 2); // 110
print();
print("참고: 진법 표현");
print("0b0101 or 0B0101", 0b0101); // 5
print("00602", 00602); // 386
print("0x20A", 0x20A); // 522
print();
print("INSERT, DELETE, INQUIRY");
print("삽입: 1010(2)를 1110(2)로 만들기");
print("0b1010 | (1<<2)", Integer.toBinaryString(0b1010 | 1 << 2));
print();
print("삭제: 1110(2)를 1010(2)로 만들기");
print("0b1110 & ~(1<<2)", Integer.toBinaryString(0b1110 & ~(1 << 2)));
print();
print("조회: A의 i번째 비트 값 확인하기");
// A & (1 << i)
print("0b1010 & (1<<2)", 0b1010 & (1<<2)); // 0
print("0b1010 & (1<<3)", 0b1010 & (1<<3)); // 1000 (0이 아님)
}
}
NOT, AND, OR, XOR
~19: -20
19 & 114: 18
19 | 114: 115
19 ^ 114: 97
SHIFT
25 << 0: 25
25 << 1: 50
25 << 2: 100
25 >> 1: 12
25 >> 2: 6
참고: 진법 표현
0b0101 or 0B0101: 5
00602: 386
0x20A: 522
INSERT, DELETE, INQUIRY
삽입: 1010(2)를 1110(2)로 만들기
0b1010 | (1<<2): 1110
삭제: 1110(2)를 1010(2)로 만들기
0b1110 & ~(1<<2): 1010
조회: A의 i번째 비트 값 확인하기
0b1010 & (1<<2): 0
0b1010 & (1<<3): 8
'콤퓨타 왕기초 > Java' 카테고리의 다른 글
코드 재사용 (0) | 2020.11.18 |
---|---|
Has A 관계와 Is A 관계 (0) | 2020.11.18 |
생성자 (0) | 2020.11.18 |
method overloading in Java (0) | 2020.11.16 |
다른 언어와 헷갈리는 문법을 모아보자 (0) | 2020.11.14 |
Comments