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

조회수 3000회

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

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

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

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

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.