<p>我试着用谷歌搜索,但找不到任何可以理解的东西。。。
有人能用外行的话解释一下这段代码里发生了什么吗?</p>
<p>这是“破解编码面试”一书中的问题。</p>
<p>编写一个程序,用尽可能少的指令交换整数中的奇偶位(例如,0位和1位被交换,2位和3位被交换,等等)</p>
<p>我做这件事的方式不涉及位操作,因为我不知道如何%\。。。</p>
<pre><code>def swap(n):
b = bin(n)[2:]
print(b)
if len(b)%2 != 0:
c = True
b = b[0] + b
pairs = wrap(b, 2)
pairs = [i[::-1] for i in pairs]
ans = ''.join(pairs)
if c: ans = ans[1:]
print(ans)
</code></pre>
<p>但现在我在看他们的答案,我真的不明白。。。(不在Python中也没用):</p>
<pre><code>int swapOddEvenBits(int x) {
return ( ((x & 0xaaaaaaaa) >>> 1) | ((x & 0x55555555) << 1) );
</code></pre>