int a = 12;
int b = 6;
int c;

c = ~b;
System.out.println("~6:"+c);

/*

0000 0000 0000 0000 0000 0000 0000 0110  (길어서 0000 0110 라고하겠음)

1111 1111 1111 1111 1111 1111 1111 1001 이게 c의 값이다.

이것은 2의 보수로 저장되어있는 음수 # 임. 근데 #을 모르니까 다시 2의 보수를 취한다.

0000 0000 0000 0000 0000 0000 0000 0111 이다. 

즉 

~6:-7 이다.

*/

 


c = a&b;
System.out.println(c);

/*

& 연산자가 한 개만 사용 되었으므로 비트연산자이다.

1100

0110 을 AND 연산하면 

0100 이다. 따라서 4.
*/


c = a|b;
System.out.println(c);

/*

| 연산자가 한 개만 사용되었으므로 비트연산자.

1100

0110 을 OR연산하면

1110 이다. 따라서 14.

*/


c = a^b;
System.out.println(c);

/*

^연산은 XOR연산.

1100

0110 을 XOR연산하면. 

1010 이다. 따라서 10.

*/

a = 13;
b = a & 1;
System.out.println(b);

/*

1101

0001 AND 

0001 따라서 1.

*/

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0705_Ex12_Bit  (0) 2021.07.06
0705_Ex11_Bit  (0) 2021.07.06
0705_Ex09_Logical  (0) 2021.07.05
0705_Ex08_Logical  (0) 2021.07.05
0705_Ex07_Logical  (0) 2021.07.05

+ Recent posts