给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1

输出: true

解释: 20 = 1

示例 2:

输入: 16

输出: true

解释: 24 = 16

示例 3:

输入: 218

输出: false

思路 使用与运算符& 规则 全1为1,其余为0

与运算符& 先将数字转换成二进制数字,然后比较每一位。

8 --> 1000

7 --> 0111

8 & 7 = 0

8 --> 1000

9 --> 1001

8 & 9 = 8

如果一个数是2的幂,那么转换成的二进制就第一位是1,其余剩下的全是0

比2的幂小一位的数字,第一位是0,其余的全是1

Java版

class Solution {
public boolean isPowerOfTwo(int n) {
if( n<=0) {
return false;
}
return (n & (n-1)) == 0 ?true:false;
}
}

运行结果

最新文章

  1. 最简单的STM32入门教程----闪烁LED
  2. sublime text3点击ctrl+B无法运行Python程序?
  3. 每一个C#开发者必须知道的13件事情
  4. HTML列表元素
  5. android学习笔记 对话框合集
  6. 局部内部类访问方法中的局部变量为什么加final
  7. php 连接mysql的问题
  8. struts checkbox选中
  9. 简单且线程安全的两个单例模式java程序
  10. android 点击重新加载界面设计
  11. java_设计模式_单例模式_Singleton Pattern(2016-08-04)
  12. Python之路-基本数据类型
  13. java的枚举2
  14. win10更新失败——适用于Windows 10 Version 1709 的03累积更新,适合基于x64系统(KB4088776)更新失败
  15. xueping wang 记录
  16. 50款经典电影效果LR预设
  17. jmeter4.x centos7部署笔记
  18. [HAOI2015]树上染色
  19. 001.网络TCP/IP工程知识点
  20. centos上shellcheck的安装

热门文章

  1. Python For Android (P4a):添加权限(Permissions)
  2. php 腾讯云 对象存储V5版本 获取返回的上传文件的链接方法
  3. P3366 【模板】最小生成树(boruvka/sollin)
  4. spring使用@Autowired为抽象父类注入依赖
  5. dell win 10笔记本关闭多媒体键,启用功能键的快捷方式
  6. Docker 微服务教程(搭建真正的网站)
  7. 11: python递归
  8. 13: openpyxl 读写 xlsx文件
  9. thiniphp tp5 使用缓存
  10. Codeforces Round #425 (Div. 2) Problem B Petya and Exam (Codeforces 832B) - 暴力