각 비트가 4번 이상 연속으로 유지돼야 상태변경이 출력되게 할
글쓴이: 송지석 / 작성시간: 금, 2005/02/04 - 3:26오후
제어 관련 프로그램을 하다가 구현해야 할 것이 생겨서 질문을 올립니다.
해야 할 일은 다음과 같습니다.
32비트짜리 비트플래그가 있습니다. 각 비트가 0,1로 상태를 나타내죠.
이 비트들의 각각이 변하면 이벤트를 발생시켜야 하는데
대신에 잠깐 바뀌었다가 다시 돌아오는 것은 무시해야 됩니다.
일단 무시하는 횟수는 4회로 정했습니다.
그러니까 어느 비트가 111011 이러면 계속 1이었던 것으로 간주하고
110000 이러면 0으로 바뀌었다고 간주하는 겁니다.
예를 들어 한비트가 다음 패턴으로 바뀌었으면
1110111001100010000110011111111
->
1111111111111111110000000011111
이렇게 되는 겁니다.
각 비트별로 하지 않고 어떻게 하면 빠르게 이걸 계산할 수 있을까요?
Forums:
그냥 int alteration_counter[32]로 배열잡아놓고
그냥 int alteration_counter[32]로 배열잡아놓고
상태가 변한 횟수를 각 배열 원소에다가 기록해놓았다가
4번 이상 되었을때 이벤트 발생시키면 안되나요?
어차피 계산량은 그리 많지 않을겁니다..
----
http://www.planetmono.org
비트 연산으로 이런식으로 하면 될 것 같습니다. 윗분 방법보단 계산량이
비트 연산으로 이런식으로 하면 될 것 같습니다. 윗분 방법보단 계산량이 더 적을겁니다.
rommance.net
댓글 달기