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

news2024/9/20 7:49:28

一、题目:

函数原型: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;
	else
		return false;
}

代码2

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

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

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

相关文章

永磁体的温度稳定性:剩磁温度系数、矫顽力温度系数、可逆温度系数

永磁体一般是作为磁场源,在一定的空间内来提供恒定磁场,对于一些精密的仪器仪表和磁性器件来说,磁体磁场的稳定性至关重要,它会直接影响仪器的精度和可靠性。 但是,在外界条件如:温度、时间、电磁场、机械…

黑豹程序员-架构师学习路线图-百科:三大框架MyBatis持久层的王者

文章目录 1、什么是MyBatis2、Mybatis的发展历史3、比Hibernate实现差,但Mybatis却最终胜利了 1、什么是MyBatis MyBatis 是一款优秀的ORM持久层框架,它支持定制化 SQL、高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。My…

软件外包开发的管理方法

软件开发的管理方法是确保项目按计划、高质量地交付的关键。以下是一些常见的软件开发管理方法,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 敏捷开发:敏捷开发是一种迭代和增量的开发方…

linux之应用编程回顾总结

gcc编译过程 一个c/c文件要经过预处理、编译、汇编和链接4个阶段,才能变成可执行文件 1.预处理 C/C源文件中,以“#”开头的命令被称为预处理命令,如包含命令“#include”、宏定义命令“#define”、条件编译命令“#if”、“#ifdef”等。预处理…

log4j2原理分析及漏洞复现

log4j2原理分析及漏洞复现 0x01 log4j2简介 Log4j2 是一个用于 Java 应用程序的成熟且功能强大的日志记录框架。它是 Log4j 的升级版本,相比于 Log4j,Log4j2 在性能、可靠性和灵活性方面都有显著的改进。 Log4j2 特点 高性能:Log4j2 使用异步…

ThinkPHP 3.2 常用内置函数

ThinkPHP 3.2 内置函数CDM疑问: D与M方法的相同点与不同点IAR 内置函数 C C方法是用于获取或修改,系统配置参数 语法: 获取:C(需要获得的配置参数Name) $value C(config_name);设置:C&…

常用的CSS伪类和伪元素有哪些?

除了之前提到的:hover、:nth-child(n)、::first-letter和::before之外,还有许多其他常用的CSS伪类和伪元素。以下是一些常见的示例: 常用的CSS伪类(Pseudo-classes): :active:选择处于活动(被…

python爬虫入门(一)web基础

HTTP基本要点 HTTP请求,由客户端向服务端发出,可以分为 4 部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体&#xff08…

倾斜摄影三维模型根节点合并技术方法探讨

倾斜摄影三维模型根节点合并技术方法探讨 倾斜摄影技术是一种通过无人机或其他航空器采集大量高分辨率照片,并使用特殊软件将这些照片拼接成三维模型的方法。在这个过程中,摄影机以倾斜角度拍摄照片,从而捕捉到目标物体的多个视角&#xff0c…

阿里云对象存储OSS怎么停止扣费

阿里云对象存储OSS一直扣费如何停止?如何关闭对象存储OSS?阿里云对象存储OSS没有关闭功能,如果不再使用对象存储OSS可以删除存储空间Bucket下的所有文件,详细说下阿里云对象存储OSS停止收费的方法: 阿里云对象存储OSS…

halcon 车牌识别

文章目录 素材图片预处理操作读取图片阈值处理图片仿射 识别预处理数字字母识别识别显示识别汉字预处理 字符组装汉字组装连接所有字符训练文件图像识别全部代码 素材图片 预处理操作 读取图片 * 读取图片 dev_close_window() read_image(Image,C:/Users/Augustine/Desktop/p…

iPhone怎么导出微信聊天记录?3个值得收藏的方法

随着时间的推移,微信占用的内存空间会“膨胀”得越来越大。当手机内存不足时,清理微信中的聊天记录是一个可行的方法。但是很多小伙伴觉得有些重要的聊天记录还有用,可能以后需要进行查看。 因此,他们想将一些聊天记录进行导出或…

NI9234 4 通道, ±5 V, 24 位软件可选 IEPE 和 AC/DC模拟输入模块振动测试国产替代

NI的自动化测试和测量系统将助您打破桎梏,化不可能为可能。让我们携手合作,选择最适合您的硬件、软件和服务组合,为您提供全副武装,助您成就非凡。 购买NI的产品或服务,并非只是单纯的一次性交易行为。如果您有任何疑…

【Javascript】不满意网上的Token无感知刷新方案,自己琢磨了个感觉还不错~

​前言 大家设想一下,如果有一个超级大的表单页面,用户好不容易填完了,然后点击提交,这个时候请求接口居然返回401,然后跳转到登录页。。。那用户心里肯定是一万个草泥马~~~ 所以项目里实现token无感知刷新是很有必要…

Cooking Casual -A Chef‘s Game

Cooking Casual brings out your inner crazy chef in this cool restaurant game! support email : 825407372qq.com

你真的懂Java中的equals和==吗?看完这篇文章你就知道了

和 equals() 是 Java 中两个用于比较对象是否相等的操作符和方法。它们的区别主要有以下几点: 一、类型 是一个运算符,而 equals() 是一个方法。 二、比较对象 Java数据对象类型分为两大类:基本类型和引用类型。 比较的对象可以是基本类型…

Navicat Premium 16 安装教程

一、下载地址 网址:https://pan.baidu.com/s/1jGISrlLGjAUYSIfLbm8IBw?pwd0i90 提取码:0i90 二、安装步骤 1.双击运行安装包 2.下一步 3.选择我同意,下一步 4.自定义安装路径,下一步 5.创建快捷方式,下一步 6.安装…

嵌入式学习笔记(61)位操作寄存器时的特殊作用

2.2.1寄存器操作的要求(特定位改变而不影响其他位) (1)ARM是内存与IO统一编址的,ARM中有很多内部外设,SoC中CPU通过向这些内部外设的寄存器写入一些特定的值来操控这个内部外设,进而操控硬件动作。所以可以说&#xf…

服务器中了mkp勒索病毒怎么解决,勒索病毒解密,数据恢复

自从九月份以来,云天数据恢复中心陆续接到很多企业的求助,企业的服务器数据库遭到了mkp勒索病毒的攻击,导致企业的所有业务工作中断无法开展,严重影响了企业的正常运行。经过云天数据恢复中心对其该病毒的详细了解与解密&#xff…

论坛议程 | COSCon'23 开源操作系统(O)

众多开源爱好者翘首期盼的开源盛会:第八届中国开源年会(COSCon23)将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是:“开源:川流不息、山海相映”!各位新老朋友们,欢迎到成都&a…