擅长:python、mysql、java
<p>您可以使用助手函数将其转换为switch语句:</p>
<pre><code>def bitSwitch(v): yield lambda b: v & (1<<b)
</code></pre>
<p>您可以这样使用:</p>
<pre><code>for case in bitSwitch(number1 ^ number2):
if case(0):
# do something ...
if case(1):
# do something else ...
if case(2):
# do some other thing ...
if case(3):
# do something different ...
...
if case(15):
# do that last thing ...
</code></pre>
<p><em>为了提高效率,您可以在switch函数中用<code>v & b</code>替换<code>v & (1<<b)</code>,并在<code>case(..)</code>调用中使用2的预计算幂:<code>case(1):</code>{<cd5>}{<cd6>}{<cd7>}。。。在这一点上,napuzba的解决方案会更好,因为它以更少的函数调用开销完成同样的事情</em></p>