C# 프로그래밍 기초 실습 전자책

C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.


퀴즈 질문


예상답변/설명

비트 연산을 응용하여 N과 N-1을 AND 연산하면 0이 되는 원리를 이용하면 다음과 같이 간단한 코딩할 수 있다.

bool IsPowerOf2(int n)
{
    return (n > 0) && ((n & (n - 1)) == 0);
}

예를 들어, N이 0x00000100 일때, N-1은 0x00000011 이고, 이 둘을 AND 연산하면 0 이 된다. 단, 0 또는 음수는 2의 N승이 될 수 없으므로 제외한다.