삼성전자 S/W Test A형 쳤을때
이거 까먹어서 당황했던 기억이 있다.
bitmask..
비트연산자..
가즈아
int bitmask;
bitmask = 5; //(101)
print -> bitmask << 1; // (1010) --왼쪽으로 한칸 밀어버리기(0으로 채우기)
print -> bitmask >> 1;//(10)->(5를 2로 나눈 몫 : 2)--오른쪽으로 한칸 밀어버리기 bitmask>>3 은 8로 나눈 몫이 나옴
print -> bitmask & 3; // 4로 나눈 나머지 (1) -> 101 와 11 을 And 한 값이다. 01이 나온다
3을하면 11이니까 4로나눈나머지다. 7을하면 111이니까 8로 나눈 나머지이다.
비트조회
bitmask = 22;
if( (bitmask & 2) > 0)
10110 & 10 => 00010 (2) 이 값은 if문에서 0보다 크므로 참이다.
오른쪽에서 2번째 값이 1인지 0인지 확인할 수 있게 되는 것이다.