public class Opr09 {//비트 단위 논리 연산자
  public static void main(String[] args){
    int a=12; // 8+4 =2³ + 2²
    
    // 128 64 32 16 8 4 2 1
    //   0  0  0  0 1 1 0 0
    //12
    
    
    int b=20; // 16+4=2⁴ + 2²

    // 128 64 32 16 8 4 2 1
    //   0  0  0  1 0 1 0 0
    // 20
    
    int c;
    c = a & b; // 비트 단위 값이 둘다 1일때만 1
    // 128 64 32 16 8 4 2 1
    //   0  0  0  0 1 1 0 0
    //   0  0  0  1 0 1 0 0
    //   0  0  0  0 0 1 0 0
    // 값 4
    System.out.println(a + " & "+ b + " -> " + c);
    
    c = a | b; //비트 단위 값이 둘다 0일때만0
    // 128 64 32 16 8 4 2 1
    //   0  0  0  0 1 1 0 0
    //   0  0  0  1 0 1 0 0
    //   0  0  0  1 1 1 0 0
    // 28
    System.out.println(a + " | "+ b + " -> " + c);
    
    c = a ^ b; //비트 단위 값이 두 값이 다르면1 같으면0
    // 128 64 32 16 8 4 2 1
    //   0  0  0  0 1 1 0 0
    //   0  0  0  1 0 1 0 0
    //   0  0  0  1 1 0 0 0
    // 24
    System.out.println(a + " ^ "+ b + " -> " + c);
    
    c= ~a; //비트 단위 값이 1이면0으로 0이면 1로
    // 128 64 32 16 8 4 2 1
    //   0  0  0  0 1 1 0 0
    //   1  1  1  1 0 0 1 1
    // 24
    // 이해 못함
    System.out.println("~ "+ a + " -> " + c);
  }
}


'Java > Operators(연산자)' 카테고리의 다른 글

대입연산자  (0) 2012.04.09
논리연산자  (0) 2012.04.09
조건 연산자  (0) 2012.04.09
증감연산자, 비교연산자, 논리연산자  (0) 2012.04.09
대소 관계를 비교하는 관계 연산자  (0) 2012.04.09

+ Recent posts