leetcode:231. 2 的幂(位运算)

一、题目:

函数原型:bool isPowerOfTwo(int n)

二、思路:

根据题意,要判断一个数是否为2的幂。如果一个数是2的幂,那么该数的二进制表示中只有一个1。所以只需要将该数的二进制表示中的最低位1移除,判断剩下的是否为0。如果为0,则说明二进制中只有一个1;如果不为0,说明二进制中有多个1。

移除二进制中最低位的1的方法:

1.n&(n-1)移除最低位的1

假设n为   

那么n-1为00000000 10000000 00000000 01111111

n&(n-1)为00000000  10000000 0000000   0000000(移除了最低位的1)

2.n&(-n)得到最低位的1(移除除了最低位1的其他所有1)

假设n为00000000 10000000 00000000 10000000

那么-n为10000000 10000000 00000000 10000000(原码)

              11111111    01111111  11111111   10000000(补码)

n&(-n)为 00000000 00000000 00000000 10000000(补码)

               00000000 00000000 00000000 10000000(原码)

三、代码:

代码1

bool isPowerOfTwo(int n)
{if ((n & (n - 1)) == 0)return true;elsereturn false;
}

代码2

bool isPowerOfTwo(int n)
{if ((n & (-n)) == n)return true;elsereturn false;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三十七、【进阶】SQL的explain

1、explain 2、基础使用 在使用explain关键字时,只需要在所执行语句前加上explain即可 mysql> explain select * from stu where id3; ---------------------------------------------------------------------------------------------------------- | id | s…

2023网络安全工程师面试题汇总(附答案)

一、面试开场白 一般首先是一段例行的开场自(说)我(学)介(逗)绍(唱),在这里我直接给你个万能公式: 1、在xx安全论坛投稿过xx篇文章,获得xx元稿费…

c语言基础:L1-052 2018我们要赢

2018年天梯赛的注册邀请码是“2018wmyy”,意思就是“2018我们要赢”。本题就请你用汉语拼音输出这句话。 输入格式: 本题没有输入。 输出格式: 在第一行中输出:“2018”;第二行中输出:“wo3 men2 yao4 yi…

中文编程开发语言工具构件说明:屏幕截取构件的编程操作

屏幕截取 用于截取指定区域的图像。 图 标: 构件类型:不可视 重要属性 l 截取类型 枚举型,设置在截取屏幕时的截取类型。包括:全屏幕、指定区域、活动窗口三种。当全屏幕截取时相当于执行了硬拷屏(PrintScre…

HVV(护网)蓝队视角的技战法分析

一、背景 1.HVV行动简介 HVV行动是国家应对网络安全问题所做的重要布局之一。从2016年开始,随着我国对网络安全的重视,演习规模不断扩大,越来越多的单位都加入到HVV行动中,网络安全对抗演练越来越贴近实际情况,各机构…

php 数组基础/练习

数组 练习在最后 数组概述 概述与定义 数组中存储键值对 数组实际上是一个有序映射 key-value,可将其当成真正的数组、列表(向量)、散列表、字典、集合、栈、队列等 数组中的元素可以是任意类型的数据对象(可以嵌套数组&#…

英语什么时候加s和es

名词变复数一般情况下加s,以s,x,ch,sh结尾加es。一个名词如果表示一个或一样东西,它取单数形式,如果表示两个或更多的这类东西,则需要用名词复数形式。 1 以s,x,sh,ch结尾的词,加es。 2 以辅音字母(除a/e/…

CNN系列

文章目录 R-CNN(2014)Conclusion SPP-net(2015) R-CNN(2014) 哈哈 创新: (1)人们可以将高容量卷积神经网络(cnn)应用于自下而上的区域建议,以定位和分割对象; (2)当标记训练数据稀缺…

python爬虫语法

注释 单行注释 # 多行注释 ‘’’注释内容’’’ 变量类型 和java不同不需要定义数据类型 变量名变量值 Numbers(数字):int(有符号整型)、long(长整型[也可以代表八进制和16进制])、float&am…

动画系统的前世今生(一)

掐指一算,五年没更新过我的CSDN账号啦,方向也从人工智能变成了计算机图形学,当然也依旧会关注AI的发展,之前在知乎上写了一些文章[传送门],后续也会逐渐同步到CSDN上~ 这个系列将包含五篇文章,内…

androdi知识笔记

jbr embed:android studio自带的jdk AGP(android gradle plugin) aar jar 利用java语言可以写应用程序(利用已有库加速开发过程),也可以自己开发库用于特定功能(供引用)。 循环啊是个&#xff0…

JVM 基础篇:类加载器

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟计算机功能来实现的,JVM屏蔽了与具体操作系统平台相关的信息,Java程序只需…

android webview加载第三方网页,<select>控件无法弹出的问题

问题重现 我这边用原生的webview加载第三方网页,有个弹框,无法弹出,一看网页源码,用的是select控件,但是在安卓手机浏览器上,iOS上,都是可以的,然后调试,控制台也没报错…

python之字典的用法

python之字典的用法 Python中的字典是一种无序、可变、可迭代的数据类型,它由键值对组成,每个键都映射到一个值。字典在Python中被视为可变对象,这意味着我们可以随时更新、添加或删除字典中的键值对。 以下是一些关于Python字典的基本用法&a…

Alibaba Druid整合

文章目录 方式一:自定义整合方式二:使用 Druid 官方的 Starter Druid官网:https://github.com/alibaba/druidDruid官网文档(中文):https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%…

从Excel到智能化:智能报表的演进与未来发展趋势

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 报表的迭代历程 报表工具的诞生与计算机技术的出现和信息技术的进步密不可分。下图是报…

2017年高热度编程语言简介

世上语言千千万,我却独爱这一种!”这句话用来形容程序员和编程语言之间的爱恨情仇实在是再精准不过了。根据GitHub 2016年的开源报告,其上所有开源项目共包含了316种编程语言,这是一个什么概念呢?举个例子来说,世界上共有226个国…

低碳城市试点政策对企业绿色创新的影响及其作用机制

数据简介:绿色低碳转型是一场广泛而深刻的经济社会系统性变革,其必然会对经济体系的诸多领域产生影响。其中,中国持续推进的低碳转型为全球应对气候变化发挥至关重要的作用。低碳城市试点政策是寻求城市绿色可持续与创新发展的重要举措&#…

粤嵌实训医疗项目day02(Vue + SpringBoot)

目录 一、创建vue项目并运行 二、vue-cli中的路由使用 三、element-ui框架、实现页面布局以及vue-路由 四、前端登录页面 五、user登录后端接口完善【后端】 六、user登录前端-请求工具-请求发起【前端】 七、请求的跨域-访问策略 八、完善项目的页面布局、导航菜单以及…

“香蕉大王”的转型升级,能否扩大市场份额?

佳农食品控股 ( 集团 ) 股份有限公司,于2023年10月11日同海通证券签署上市辅导协议,计划登陆上交所主板。据了解这已经不是佳农食品第一次IPO了,2019 年,佳农集团曾向上交所递交过招股说明书,当时的招股书披露,佳农集团…