首页 > 其他分享 >2的幂:位运算技巧总结

2的幂:位运算技巧总结

时间:2023-02-24 10:36:54浏览次数:48  
标签:总结 a100000 false 运算 示例 int true 技巧

2的幂

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

示例 1:

输入:n = 1
输出:true
解释:20 = 1
示例 2:

输入:n = 16
输出:true
解释:24 = 16
示例 3:

输入:n = 3
输出:false
示例 4:

输入:n = 4
输出:true
示例 5:

输入:n = 5
输出:false

提示:

-231 <= n <= 231 - 1

进阶:你能够不使用循环/递归解决此问题吗?

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/power-of-two
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路及位运算技巧总结

技巧1:检查第i位是否为1
n & (1 << i)
技巧2:取出最低位的1
n & -n
技巧3:将最低位的1变为零
n & (n-1)
以上技巧都可以通过具体的例子证明(a100000)& (a100000-1) = (a100000) & (a01111) = a00000

code

class Solution {
public:

    int lowbit(int x)
    {
        return x & -x;
    }

    bool isPowerOfTwo(int n) {
        return  n > 0 && lowbit(n) == n?true:false;
    }
};

标签:总结,a100000,false,运算,示例,int,true,技巧
From: https://www.cnblogs.com/huangxk23/p/17150378.html

相关文章

  • 大规模 IoT 边缘容器集群管理的几种架构-5-总结
    前文回顾大规模IoT边缘容器集群管理的几种架构-0-边缘容器及架构简介大规模IoT边缘容器集群管理的几种架构-1-Rancher+K3s大规模IoT边缘容器集群管理的几种架构-......
  • MegEngine 使用小技巧:使用 Netron 实现模型可视化
    近期社区有多个同学问,如何查看MegEngine训练出的模型网络结构。其实在去年8月,MegEngine就已经集成到了Netron平台上。目前Netron已支持MegEngine模型:TracedMod......
  • Linux学习总结
    Linux学习笔记一、基本Liunx命令二、管道符、重定向与环境变量三、Vim编辑器四、Shell命令脚本五、用户身份与文件权限六、存储结构与磁盘划分七、RAID与LVM磁盘阵列技......
  • 2023前端面试知识点总结
    原型JavaScript中的对象都有一个特殊的prototype内置属性,其实就是对其他对象的引用几乎所有的对象在创建时prototype属性都会被赋予一个非空的值,我们可以把这个属性......
  • 助教工作总结(计算机网络)
    一、助教工作的具体职责和任务(包括:你和老师是如何配合的、你和课程其他助教是如何配合的(如果有的话))1.批改同学们的作业2.随时在qq,微信上辅导同学们3.实验课协助老师......
  • 助教工作总结
    一、助教工作的具体职责和任务  我在课程学习中充当老师和同学之间的桥梁作用,收集同学们的学习情况,做好反馈,还有帮老师改实验作业,更好的优化课程学习,同时尽可能在课后......
  • 2022.2.23学习总结
     两天没有写博客了,最近一些生活和学习的安排也比较忙,但还是抽出了一些学习了一点编程,周二的时候,我配置了AndroidStudio,在新建模块的时候花费了一点的时间,许多同学们也......
  • Vue总结回顾
    vue大回顾1前端发展史-react,vue--->前端工程化--->前后端分离-大前端:flutter,uni-app2Vue介绍-读音,单页面应用(spa),组件化开发,mvvm架构-Vue版本问题:vue2......
  • 2023/2/23号周四总结
     今天上午醒了吃了早饭,在宿舍呆到9.30,去上工程数学课,上完了吃午饭,下午上体育课,体育课有考试,考试十个投篮我进了七个,下课之后回到寝室,看了一些安卓方面的视频,晚上吃完饭后......
  • DRF思维导图及知识点总结(很值得一看的博客)
    DRF思维导图及知识点总结1.视图类-viewview:djngo自带的请求对象:Django默认的HttpRequest对象获取数据: Get请求数据:request.GETPOST、PUT等请求......