int a;
a = 12 << 3;
System.out.println(a);
/*
<< 는 shift 연산이다.
0000 1100 이면 0110 0000 으로 바꾸라는 의미.
값은 96이다.
*/
a = 12 >> 3;
System.out.println(a);
/*
0000 1100 을 0000 0001로 바꾸라는 의미.
값은 1이다.
*/
a = -32 >> 3;
System.out.println(a);
/*
0010 0000 를 2의 보수로 저장
1110 0000 임. 이것을 1111 1100으로 바꿈. 이것은 -4이다.
*/
a = -32 >>>3;
System.out.println(a);
/*
>>> 연산은 이것만 존재( <<<는 없다)
이것은 빈공간에 0을 채운다.
예를 들어
1110 0000 이었던 것을 0001 1100이 되는 것임.
그래서 값은 저렇게 나온다고 함.
*/
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0705_Ex14_Operator (0) | 2021.07.06 |
---|---|
0705_Ex13_Bit (0) | 2021.07.06 |
0705_Ex11_Bit (0) | 2021.07.06 |
0705_Ex10_Bit (0) | 2021.07.06 |
0705_Ex09_Logical (0) | 2021.07.05 |