位运算初识---1

简介: 前言 本题为力扣官网第231题。 本题链接:力扣

一、问题分析

要判断一个数是否为2的幂,如果该数小于等于0,则一定不是2的幂,如果该数大于0,我们可以知道如果某个数是2的幂的话,则它的二进制表示一定是最高位是1,其余为全是0,所以我们可以想到,如果对这个数字减1,得到的数最高位是0,其余位全是1,所以可以得到如果一个数是2的幂,则有(n&(n-1))=0,所以可以将程序如下实现。


二、代码实现

class Solution {

public:

   bool isPowerOfTwo(int n) {

    if(n>0&&((n&(n-1))==0))

      return true;

    return false;

   }

};

 


目录
相关文章
|
3月前
|
算法 C语言
C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)
C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)
|
3月前
|
C语言
C语言----寻找100~999范围内的质数--素数
C语言----寻找100~999范围内的质数--素数
|
3月前
|
C语言
C语言----循环---n的k次方
C语言----循环---n的k次方
|
11月前
|
存储 C语言 C++
C语言---数据结构实验---数制转换---表达式求值---回文判断---二叉树创建遍历
C语言---数据结构实验---数制转换---表达式求值---回文判断---二叉树创建遍历
|
4月前
|
存储 算法 Java
LeetCode算法题---两数相加(二)
LeetCode算法题---两数相加(二)
34 0
|
存储
力扣---两数相加(c语言版)
力扣---两数相加(c语言版)
76 0
剑指offer_位运算---二进制中1的个数
剑指offer_位运算---二进制中1的个数
41 0
位运算初识---2
前言 本题为力扣官网342题。 题目链接:力扣
32 0
求数组中只出现一次的数---异或操作
求数组中只出现一次的数---异或操作
58 0