奇妙的位运算

位运算之统计二进制数中1的个数

2019-01-22  本文已影响0人  掌灬纹

题目:输入任意十进制数转为二进制并且统计二进制中1出现的次数

样例:

输入:

10

输出:

1010

2

tip: 二进制数减一 可视为从最低位为1往后取反 eg:1010 - 1 = 1001 ,在将

(1010)&(1001)做与运算,即可消去第一位1,即1000,即统计减一的次数

,直到消去所有的1,即为1的个数。

(Java)代码如下:

public static void main(String[] args) {

int count = 0;//统计减1次数

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

System.out.println(Integer.toString(n, 2));//二进制输出

while(n != 0) {

n = n&(n-1);

count++;

}

System.out.println(count);

}

上一篇 下一篇

猜你喜欢

热点阅读