파게로그

비트 연산 본문

콤퓨타 왕기초/Java

비트 연산

파게 2021. 3. 4. 03:22
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