[GpGiki 대문으로]

Number Toggle


안녕하세요? 파연입니다. 하나의 변수가 2개의 값만을 가질 경우 보통 어떤 식으로 쓰시는지 궁금한데요, 제가 쓰는 방법을 소개하려고 합니다.

제일 쉬운 경우죠.. 별로 설명이 필요없는 듯.

 bool toggle;
 ...
 toggle = !toggle;


마찬가지로 아주 쉽습니다. 2와 -2, 3과 -3의 토글의 경우에도 사용할 수 있겠지만, 그런 토글을 사용할 일은 아직까지 한번도 없었습니다. ^^;

 int toggle = 1;
 ...
 toggle = -toggle;

그냥 bool로 해도 되겠지만, 0과 2의 토글, 0과 3의 토글 등의 경우에도 사용이 가능하고, 이렇게 0과 어떤 숫자와의 토글을 써야하는 때가 의외로 자주 있습니다.

보통의 경우 이렇게 많이 쓰겠죠..

 int toggle = 1;
 ...
 if (toggle == 1) toggle = 0;
 else toggle = 1;

조금 더 생각을 한다면, 3항 연산자를 사용해서 다음과 같이 하는 사람도 있을테고요..

 int toggle = 1;
 ...
 toggle = (toggle == 1) ? 0 : 1;

논리연산을 하지 않으려면 다음과 같이 하면 될껍니다.

 int toggle = 1;
 ...
 toggle = (toggle + 1) % 2;

혹은 이렇게도 사용하더군요.

 int toggle = 1;
 ...
 toggle = (toggle + 1) & 0x01;

제가 제시하는 팁은 아래와 같습니다. 단 한번의 연산으로 토글이 되는 방법이죠.

 int toggle = 1;
 ...
 toggle = 1 - toggle;

괜찮지 않나요? ^^

도움이 되길 바랍니다.


비트필드를 사용할때는 XOR을 많이 사용하죠.

 int toggle = 0x01;
 ...
 toggle ^= 0x01;

-- makefile $DT$


네.. 비트필드가 사실 연산속도가 제일 빠르죠.. 다만 float 형에선 사용할 수가 없다는.. ^^;

- 파연


sign bit 수정에는 사용할 수 있죠 :)


제일 위로
최종 수정 일시: 06월 12일(2004년) 08:26 PM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular