Bit Mask
Programming/C 2013. 2. 15. 04:11 |비트 마스크
: 비트의 열에다가 씌울 수 있는 마스크란 뜻이다.
마스크를 씌우는 이유
: 마스크를 잘 정의하고 사용하면 비트 열의 특정부분을 뽑아 낼 수 있다.
비트 마스크를 언제 사용하는가
: 결정해야 할 동작방식이 한 두 가지라면, 일반적으로 구현해도 무리가 없다. 그러나 셋을 넘어간다면 프로그램이 복잡해진다는 단점이 생긴다.
만약 결정해야 할 동작방식이 열 가지라면, 열 개의 변수를 선언하고 열 개의 함수를 정의해야만 한다. 뿐만 아니라 main 함수에서는 총 열 번의 함수 호출을 해야만 한다.
따라서 이는 분명 문제가 된다. 그런데 이러한 단점의 해결을 위해 비트 마스크의 활용을 고려해 볼 수 있다.
※ 비트 마스크는 비트 연산자 중에 <<, >> 쉬프트 연산자를 활용할 수도 있겠다.
왜냐하면, << 연산자는 곱하기 2가 되고, >> 연산자는 나누기 2가 되기 때문이다. 주의할 점은 >> 연산자일 경우, 대상이 짝수일때만 정확한 값을 얻는다.
그리고, 여담이지만 비트 연산자는 정말 엄청나게 빠르다. 그래서 비트 단위 연산자는 곱셈과 나눗셈이라는 상대적으로 느린 연산을 대신할 수 있는 힌트가 된다.
비트 연산자 중 '|' 를 하였기때문에 비트의 변경이 이루어진다.
비트 마스크의 활용 예
이 소스코드에서의 가장 큰 특징은 "한번의 함수 호출로 둘 이상의 특성을 설정할 수 있다" 는 것이다.
"설정해야 할 정보가 많이 필요한 상황에서는 비트 마스크 방식을 선택하자."
'Programming > C' 카테고리의 다른 글
scanf 함수의 리턴 값 (0) | 2013.03.27 |
---|---|
Bit Field (0) | 2013.02.15 |
시간과 날짜 관련 함수들 (0) | 2013.02.15 |
난수 (Random Number) (0) | 2013.02.15 |
r+, w+ a+ 모드의 활용 (0) | 2013.02.15 |