二进制位运算以及扩展问题
来源:互联网 发布:守望先锋生涯数据消失 编辑:程序博客网 时间:2024/05/27 16:42
二进制位运算问题
问题描述:计算数n的二进制补码中有多少个1
import java.util.Scanner;public class Main {/** * 计算数n的二进制补码中有多少个1 * @param n * @return */static int NumberOf1(int n) {int count = 0;while (n != 0) {count++;n = (n - 1) & n;}return count;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n;while (sc.hasNext()) {n = sc.nextInt();System.out.println(NumberOf1(n));}}}扩展问题:
1.判断一个整数是不是2的整数次方
(n-1)&n==0 返回true则表示是,否则表示不是
2.输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
两步走:
1.将m与n进行异或运算(m^n)得到一个数,这个数有个特点:两个二进制数相同位置的数相同则这个数对应的位置为1,表示此位置需要一次改变。所以最后结果就是计算异或得到的这个数中有多少个1了。
2.计算异或得到的这个数中有多少个1即是要求的结果。
0 0
- 二进制位运算以及扩展问题
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算
- 二进制位运算符
- Python的二进制位运算
- Python的二进制位运算
- 二进制位运算积累备忘
- 进算计二进制位运算
- Java之二进制位运算
- 二进制位运算应用
- 二进制位运算模拟所有情况。
- 二进制位运算实现权限系统
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- java基础学习总结——super关键字
- 四大主流数据库比较
- 分布式理论之一:Paxos算法的通俗理解
- java基础学习总结——java读取properties文件总结
- 二进制位运算以及扩展问题
- 信息采集
- Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configur
- 面试题收集——Java基础部分(一)
- java基础学习总结——面向对象2
- div中嵌套iframe
- EasyAR从入门到精通开发系列教程(4)---脱卡功能总结
- 顺序表操作集
- java基础学习总结——多态(动态绑定)