'bit mask'에 해당되는 글 1건

  1. 2013.02.15 Bit Mask

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
Posted by scii
: