计算机逐位相与怎么计算

时间:2025-01-17 06:01:42 计算机

逐位相与(Bitwise AND)是一种二进制位运算,用于将两个数字的每一位进行逻辑与操作。具体操作规则如下:

1. 如果两个相应的二进制位都为1,则结果位为1。

2. 如果两个相应的二进制位有一个为0,则结果位为0。

逐位相与可以用以下步骤进行计算:

1. 初始化一个计数器变量 `res` 为0,用于统计结果中1的个数。

2. 使用一个循环,每次循环中:

将数字 `n` 与1进行按位与操作,如果结果为1,则计数器 `res` 加1。

将数字 `n` 无符号右移一位(即 `n >>= 1`)。

3. 当 `n` 变为0时,循环结束。

4. 返回计数器 `res` 的值,即为 `n` 中1的个数。

```python

class Solution:

def hammingWeight(self, n: int) -> int:

res = 0

while n:

res += n & 1

n >>= 1

return res

```

这个算法的时间复杂度是O(log n),其中n是输入数字的位数。