算法题_位运算_4_是不是2的整数次方
位运算
是不是2的整数次方
如果已经吃透了上一道题《二进制数中“1“比特的个数》,只要稍加思考,就会发现这道题与上一道的考点是一样的,都是判断"1"比特的个数。
题目:是不是2的整数次方
题目描述:用一条语句(注意:一条语句)判断一个整数是不是2的整数次方结题思路:1、若一个数为2的整数次方,则其二进制只有一个1比特,其余全为01.1、例如:2 --> 0000 0010, 16 --> 0001 00002、设整数为N,执行一次 (N-1) & N == 0 是否成立。即可判断public class 是不是2的整数次方 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();System.out.println("十进制数:" + N);System.out.println("二进制数:" + Integer.toString(N, 2));/** 1的二进制:00000001* 2的二进制:00000010* 4的二进制:00000100* 8的二进制:00001000* 16的二进制:00010000* 由上可得,2的整数次方,则只有一个1个1比特* 因此,问题可转化为:二进制中1的个数是不是1个* 因为题目要求一条语句*/System.out.println(((N - 1) & N) == 0);}
}
调试结果:
如有错误,敬请指正!
算法题_位运算_4_是不是2的整数次方相关推荐
- 算法题_位运算_9_出现一次的数字和出现k次的数字
位运算 出现一次的数字和出现k次的数字 题目:出现k次和出现1次 描述:数组中只有一个数出现了1次,其他的数都出现了k次,请输出只出现1次的数. 第一次看到这道题,思考了一会,觉得可以使用Map集合来 ...
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...
- c语言用位运算将一个数清零,C语言学习笔记_位运算
C语言学习笔记_位运算 知识点记录 基本位运算 按位与:全1为1,见0为0:与1相与无变化,与0相与变为0:可用于特定位清零 按位或:见1为1,全0为0:与1相或变为1,与0相或无变化:可用于特定位置 ...
- 算法之美 | 位运算的巧妙奥秘(一) | JAVA中位运算的深入浅出
文章目录 前言 一.位运算符号 二.位运算的运算规则 扩展 前言 传智杯初赛后有感而写,我目前阶段所学习的算法,只是最基础的数学,对于数字和数学公式还是不敏感,在小卡与质数2那道题,解题的思路只有最基 ...
- 【算法技巧】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子.不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也 ...
- java的简单算法题_[2]十道算法题【Java实现】
前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...
- LeetCode刷题:位运算(找不同 和 只出现一次的数字)
1.常见的位运算 按位与&:(1&1=1,1&0=0,0&1=0,0&0=0); 按位或 | : (1 | 1=1,1 | 0=1,0 | 1=1,0 | 0= ...
- 疯子的算法总结(一) 位运算(快速幂、快速乘)
一.预备知识(补码,反码) 计算机通过二进制表示整形数,比如int型32位有符号整形数: 1表示为:0000-00001(共32位) -1表示为:1111-1111(共32位) 补码计算法定义:非负数 ...
- 【算法】 - 动态规划 + 位运算
题目描述 思路1: 写一个返回2进制中1数量的函数countOne 遍历0到num,对每一个数使用countOne,并将结果保存到res中返回 var countBits = function (nu ...
最新文章
- PAT(甲级)2019年春季考试 7-2 Anniversary
- 考考基础部分,谈谈Java集合中HashSet的原理及常用方法
- Android OTA在线升级二(升级包编译原理分析) 【转】
- CF里面的资源载入问题
- 图文分析 OSPF 的特点
- java 数组的冒泡排序
- Webpack进阶(二)代码分割 Code Splitting
- MySQL 为表创建、添加、删除以及查看索引的语法
- android可以设计的软件,不懂APP如何设计?送你10条Android设计原则
- 打开VsCode经常弹出:尝试在目标目录创建文件时发生一个错误:拒绝访问:重试 跳过这个文件(不推荐),关闭安装程序
- N70常用软件大集合
- 国培计算机网络技术培训心得,2017国培学习心得体会及感受
- signature=530d9c5e7e99d796faa35352560aede4,Visual Detection of Volcanic Plumes
- ios vs android设计
- 解决 SQLite报错:OperationalError: row value misused
- 用不可逆算法MD5进行加密后,如何进行登录验证
- 孙陶然:不要轻易开始创业
- 10270 : 青蛙的游戏
- pip安装selenium
- vant tabbar遮挡内容的解决方式
热门文章
- 如何跳过Nexus 7二代的开机设置
- 希捷 sshd 微型计算机,总结:希捷SSHD薄盘的优/缺点_希捷 Laptop Thin 500GB 5400转 8GB混合硬盘_内存硬盘评测-中关村在线...
- 移动适配(引入js知识)
- QTP的键盘鼠标录制
- UE4 安卓打包失败“Build-tool 31.0.0 is missing DX”
- 雅虎金融目前在其IOS应用中提供4种加密货币的交易服务
- 【计组】二进制炸弹bomblab Phase1-6
- Oracle数据库解决NULL值不走B树索引
- 关于高考志愿填报的小贴士
- i5 10400f参数 i5 10400f可以超频吗