728x90
반응형
Device Driver 나 low-level system programming 을 건드리다 보면 bit operation 을 자주 쓰게 되는데,
개발자마다 사용하는 방식이나 스타일이 다르다.
음... 이것도 한가지 타입으로 정의해서 쓰면 코드가 더 깔끔해질 것 같긴한데, 우선 선호하는 내용만 정리해본다.
1. Set bit
OR 연산자를 "|" 를 사용한다.
foobar |= 1UL << n; // foobar is in unsigned long
2. Clear bit
AND 연산자 "&" 를 사용한다.
foobar &= ~(1UL << n); // foobar is in unsigned long
3. Toggle bit
XOR 연산자 "^"를 사용한다.
foobar ^= 1UL << n;
linux kernel 내에서는 위 코드 내의 bit offset shift 이 BIT(n) 으로 이미 정의되어 있어 보다 편한게 사용가능하다.
728x90
반응형
댓글