• leetcode-231-Power of Two


                                                  Power of Two

    Given an integer, write a function to determine if it is a power of two.

    推断给出的数,是否为2的次方,如1,2,4,8,16...




     移位操作,2的次方的数,换位2进制表示,都是第一个为1 ,其后面都是0,。如8=1000

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            if (!n) return false; //等于0的情况
            while (n != 1){       // 二进制第一个数肯定是1,不推断
                if (n&1)  return false;  // 为1  则不是2的次方
                n = n >> 1;
            }
            return true;  
        }
    };




    利用 n&(n - 1)  。即将二进制的最后一个1变为0

    假设是2的次方,则n&(n - 1)=0

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            //if (!n) return false; // 有可能是负数。故不行
            if (n <= 0) return false;
            return ( n&(n - 1) )== 0;
        }
    };



  • 相关阅读:
    IE、chrome、火狐中如何调试javascript脚本
    RFS_oracle的操作
    python_操作oracle数据库
    RFS_窗口或区域之间的切换
    RFS_关键字
    python_遇到问题
    python_GUI
    python_文件
    python之深浅拷贝
    python之编码和解码
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7265798.html
Copyright © 2020-2023  润新知