1 답변
-
정수가 짝수인지 홀수인지 확인할때는 보통 다음 2가지 방법을 씁니다.
1. AND(
&
)로 검사하기정수의 맨 마지막 비트가 1이면 홀수, 0이면 짝수인 점을 이용합니다.
int c = 1; if( c&1 ) printf("c는 홀수\n"); else printf("c는 짝수\n");
2. 나머지(
%
)로 검사하기짝수와 홀수의 정의
- 2로 나누어 떨어지면 짝수,
- 2로 나누어 떨어지지 않으면 홀수
를 이용합니다.
int c = 1; if( c%2 ) printf("c는 홀수\n"); else printf("c는 짝수\n");
1, 2의 비교
다음 코드에서 어떤 최적화 옵션(옵션없이/-O/-Os/-O2/-O3)을 쓰던 둘의 어셈블리 코드는 동일했습니다.
/* modulo.c */ #include <stdio.h> int main(void) { int x; for (x = 0; x < 10; x++) if (x % 2) printf("%d is odd\n", x); return 0; } /* and.c */ #include <stdio.h> int main(void) { int x; for (x = 0; x < 10; x++) if (x & 1) printf("%d is odd\n", x); return 0; }
댓글 입력