我在以下几行中有错误。错误不是反复出现的,只是有时
x,y are huge numbers of 2048 bits
z=bin(x)+bin(y)
z=int(z,2)
ValueError: invalid literal for int() with base 2: '10010101101001011011000000001111001110111110000100101000000011111111100000111010111011101111110010001101101001101000100000001100010011000010100000110100100001010110011111101101000101101001011001100110'
你确定你没有伪造错误信息吗?
密码。。。
…对我有用。
还有,你的代码的一个具体例子。。。
…显示错误消息中的问题(即
0b
前缀)。解决的办法是用。。。
…或者,正如Martijn Pieters建议的那样,使用
format()
生成不带前缀的二进制表示。。。…或者,正如gnibbler建议的那样,使用string对象的
format()
方法在一个调用中完成它。。。bin将返回以下格式的字符串:
与第一个
'0b'
所以,对于您的代码,可以使用这个(将
x
和y
作为整数):或者,如果您希望首先将
x
和y
具体化为字符串:bin
为您提供了一个字符串表示,因此bin( .. ) + bin( .. )
将两个字符串连接起来,这不是有效的结果。如果您试图使用实际的二进制数据(而不是二进制数据的整数表示的字符串表示,这是您的代码所做的),那么您应该使用^{} module 。
相关问题 更多 >
编程相关推荐