플래그를 사용하기에 편리한 비트 연산자에 대해서 기록..



~ (NOT)

비트를 반전시킨다.

ex) 0000  -> 1111


& (AND)

대응되는 비트가 모두 1  1이다.

ex) 1111

       0101

 ㅡㅡㅡㅡ

       0101 (비교한 둘이 모두 1인 경우에만 남긴다.)



| (OR)

대응되는 비트가 모두 0  0이다.

ex) 1111

       0101

 ㅡㅡㅡㅡ

       1111 (둘 중 하나라도 1이면 1이다.)



^ (XOR)

 개의 비트가 달라야 1이다.

ex) 1110

       0100

 ㅡㅡㅡㅡ

       1010 (같으면 거짓이라는 변태같은 규칙)


Shift 연산

<<

지정한 수만큼 왼쪽으로 비트들을 이동시킨다.

ex) 0000 1110에 대하여 << 2  수행시.. 0011 1000


>>

지정한 수만큼 오른쪽으로 비트들을 이동시킨다.

ex) 0000 1110에 대하여 >> 2  수행시.. 0000 0011

// 1 하나는 날아가버렸다. 0.5 를 저장하는 일은 없다.









Posted by GENESIS8

댓글을 달아 주세요