if (x != 0)   ==>   if (x)
if (x == 0)   ==>   if (!x)
if (x != -1)    ==>  if (~x)
if (x != y)     ==>   if (x ^ y)

이 정도는 기본으로 알고 적극 활용하자. 저걸 안다면 for문도 이렇게 최적화시킬 수 있다.

for (i = 1; i < 5; ++i)

이 경우처럼 시작 값이 끝 값 이하라는 보장이 있다면 이렇게 바꿀 수 있다.

for (i = 1; i ^ 5; ++i)

왜 후자가 더 빠르냐고? i < 5는 빼기 연산을 수행해서 비교하지만 i ^ 5는 비트 연산인 xor 연산으로 비교하기 때문에 속도가 더 빠르다.