정수가 짝수인지 홀수인지 확인하려면 어떻게 하나요?


제목 그대로입니다. 정수가 짝수인지 홀수인지 확인하려면 어떻게 하나요?

  • 2016년 01월 29일에 작성됨

조회수 384


1 답변


좋아요
0
싫어요
채택취소하기

정수가 짝수인지 홀수인지 확인할때는 보통 다음 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;
}
  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close