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 |