How to check if a number is a power of 2

后端 未结 25 1918
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-22 03:30

Today I needed a simple algorithm for checking if a number is a power of 2.

The algorithm needs to be:

  1. Simple
  2. Correct for any ulong
25条回答
  •  轮回少年
    2020-11-22 03:53

        bool IsPowerOfTwo(int n)
        {
            if (n > 1)
            {
                while (n%2 == 0)
                {
                    n >>= 1;
                }
            }
            return n == 1;
        }
    

    And here's a general algorithm for finding out if a number is a power of another number.

        bool IsPowerOf(int n,int b)
        {
            if (n > 1)
            {
                while (n % b == 0)
                {
                    n /= b;
                }
            }
            return n == 1;
        }
    

提交回复
热议问题