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

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

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;
    }
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.