<p>你确定你没有伪造错误信息吗?</p>
<p>密码。。。</p>
<pre><code>>>> int('10010101101001011011000000001111001110111110000100101000000011111111100000111010111011101111110010001101101001101000100000001100010011000010100000110100100001010110011111101101000101101001011001100110', 2)
939350809951131205472627037306557272273273866819979105965670L
</code></pre>
<p>…对我有用。</p>
<p>还有,你的代码的一个具体例子。。。</p>
<pre><code>>>> x = 82349832
>>> y = 23432984
>>> z = bin(x) + bin(y)
>>> int(z, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '0b1001110100010001111000010000b1011001011000111100011000'
</code></pre>
<p>…显示错误消息中的问题(即<code>0b</code>前缀)。</p>
<p>解决的办法是用。。。</p>
<pre><code>z = bin(x)[2:] + bin(y)[2:]
z = int(z, 2)
</code></pre>
<p>…或者,正如Martijn Pieters建议的那样,使用<code>format()</code>生成不带前缀的二进制表示。。。</p>
<pre><code>z = format(x, 'b') + format(y, 'b')
z = int(z, 2)
</code></pre>
<p>…或者,正如gnibbler建议的那样,使用string对象的<code>format()</code>方法在一个调用中完成它。。。</p>
<pre><code>z = '{:b}{:b}'.format(x, y)
z = int(z, 2)
</code></pre>