
如何计算一个整数二进制表示中包含多少个1?
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文将介绍一种高效的方法来计算给定整数在二进制形式下包含多少个1。通过简单的数学和位操作技巧,读者可以轻松掌握这一实用技能。
代码如下:判断一个整数的二进制位中有多少个1
```cpp
void totalOne(int x) {
int count = 0;
while(x) {
x = x & (x - 1);
count++;
}
printf(count = %d\n, count);
}
```
循环中的操作 `x = x & (x – 1);` 和 `count++;` 直到变量 `x` 变为0为止。此方法的时间复杂度是O(m),其中m表示整数的二进制位中1的数量。
考虑一个具体的例子,设整数 `x` 的二进制形式如下:
```
x = an-1an-2…a0
```
从低位到高位依次检查每一位,不失一般性地假设第i位是第一个为1的二进制位(即 ai=1)。此时有:
```
x =an-1,
```
全部评论 (0)
还没有任何评论哟~


