티스토리 뷰

개발

c/c++ 간단 토글링

likehood~ 2007. 5. 22. 16:23
 (1) 0과 1을 토글(Toggle)하는 경우: 프로그램에서 변수의 값을 0↔1을 토글
    int i=0; //전역 or member 변수
    i^=1;//비트 배타합(eXclusive Or) 연산의 특징을 이용한다.
  이와 같은 기교는 임의의 두 수를 토글하는데 사용할 수 있다. 예를 들어 1
과 3을 토글하려면, 0001 ^ 0011 → 0010
이므로, 두 수의 배타합의 결과인 2와 배타합 연산을 하면된다.
    int i=1; //전역 or member 변수
    i^=2;//1과 3을 토글한다.
  (2) 1과 -1을 토글하는 경우
    int i=1; //전역 or member 변수
    i=-i;
  (3) 0,1,2,3을 토글하는 경우: 2개 보다 많은 숫자를 토글
    int j=0; //전역 or member 변수
    i=(i+1)%4;
  만약, 5,6,7,8을 토글하고 싶다면,
    int j=0; //전역 or member 변수
    int i;
    j=(j+1)%4;
    i=j+5;
처럼 사용한다. 일반적으로 m에서 시작하고 연속된 n개의 숫자를 토글하려면,
    int j=0; //전역 or member 변수
    int i;
    j=(j+1)%n;
    i=j+m;
을 사용하면 된다.
    (4) 임의숫자 토글 (참조표이용..)
    int toggle[]={100,34,200,79}; //전역 or member 변수
    int j=0, i;
    j=(j+1)%4;
    i=toggle[j];

'개발' 카테고리의 다른 글

도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
simpleAdo 2.0  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12
도서물 도착!!  (0) 2007.04.09
H.264 white paper(intel)  (0) 2007.04.02
댓글