判断一个整数是否是2的n次方

时间:2023-02-19 16:03:53
  1. http://blog.csdn.net/amandag/archive/2008/12/06/3461070.aspx
  2. //判断一个整数是否是2的n次方
  3. public static bool IsPower(int number)
  4. {
  5.     if (number <= 0)
  6.      {
  7.         return false;
  8.      }
  9.     if ((number & (number - 1)) == 0)
  10.      {
  11.         return true;
  12.      }
  13.     return false;
  14. }
  15. ===================================
  16. public static bool IsPower(int number)
  17. {
  18.     if (number <= 0)
  19.      {
  20.         return false;
  21.      }
  22.     while (true)
  23.      {
  24.         if (number == 1)
  25.          {
  26.             return true;
  27.          }
  28.         //如果是奇数
  29.         if ((number & 1) == 1)
  30.          {
  31.             return false;
  32.          }
  33.         //右移一位
  34.          number >>= 1;
  35.      }