输入一个整数,输出其二进制中1的个数
时间: 2023-05-12 16:03:54 浏览: 94
您好,对于您的问题,我可以提供以下代码:
```python
def count_bits(n):
count = 0
while n:
count += n & 1
n >>= 1
return count
```
这个函数接收一个整数作为参数,然后使用位运算来计算其二进制中1的个数。
相关问题
java输入一个整数,输出该数二进制表示中1的个数。
可以使用位运算来统计二进制表示中1的个数,具体实现方法如下:
```java
public static int countOnes(int n) {
int count = 0;
while (n != 0) {
count++;
n &= (n - 1);
}
return count;
}
```
在这个方法中,我们使用一个循环来不断地将n的最后一个1变为0,并将计数器加1,直到n变为0为止。具体地,我们可以使用按位与运算(&)和减1来实现将最后一个1变为0的操作,因为:
- n & (n - 1) 的结果是将n的最后一个1变为0,其他位不变。
- n减1后,最后一个1变为0,低位变为1,其他位不变。
因此,我们每次将n & (n - 1) 的结果赋值给n,就相当于将n的最后一个1变为0。循环终止的条件是n变为0,说明已经统计完了所有1的个数。
使用该方法,我们可以很方便地统计一个整数的二进制表示中1的个数。
java输入一个整数,输出该数二进制表示中1的个数的全部代码
完整的代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = scanner.nextInt();
int count = countOnes(n);
System.out.println("该数二进制表示中1的个数为:" + count);
}
public static int countOnes(int n) {
int count = 0;
while (n != 0) {
if ((n & 1) == 1) {
count++;
}
n = n >>> 1; // 无符号右移,避免负数时死循环
}
return count;
}
}
```
这段代码首先通过 `Scanner` 类获取用户输入的整数,然后调用 `countOnes` 方法来计算二进制表示中1的个数,最后输出结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)