擅长:python、mysql、java
<p>听起来像是在创建一个位掩码。这在C语言中是很常见的,它使用32位数字,每一位都由一个常量表示</p>
<p>这种方法最酷的一点是,如果在输入中设置了位,掩码将只产生一些输出,否则输出将为0</p>
<p>无论如何,这不是C;这是python,因此我们可以使用<a href="https://docs.python.org/3/library/functions.html#bin" rel="nofollow noreferrer">^{<cd1>}</a>方法将每个数字转换为二进制字符串,然后比较字符串中的每个字符</p>
<pre><code>b_num1 = bin(num1).replace('0b', '')
b_num2 = bin(num2).replace('0b', '')
for i in range(num1.bit_length()):
if b_num1[i] != b_num2[i]:
pass # do something
...
</code></pre>
<hr/>
编辑
<p>在python3中,我们可以使用<a href="https://www.python.org/dev/peps/pep-0498/" rel="nofollow noreferrer">^{<cd2>}</a>创建二进制数:</p>
<pre><code>b_num1 = f'{num1:b}'
b_num2 = f'{num2:b}'
</code></pre>