note

비트 단위 논리 연산자 본문

자바/연산자

비트 단위 논리 연산자

투한 2011. 12. 13. 13:17
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);
  }
}






12 & 20 -> 4
12 | 20 -> 28
12 ^ 20 -> 24
~ 12 -> -13


'자바 > 연산자' 카테고리의 다른 글

대입 연산자  (0) 2011.12.13
논리 연산자2  (0) 2011.12.13
논리 연산자  (0) 2011.12.13
조건 연산자  (0) 2011.12.13
증감연산자, 비교연산자, 논리연산자  (0) 2011.12.13