[英]how to implement bitwise XOR in python 3
我想实现1000000 ^ 10100001的XOR操作。
def keygen(key):
print (key)
k0 = key
w0 = k0[0:8]
w1 = k0[8:]
w2 = int(w1) ^ int(10000000)
但即时通讯没有得到正确的输出。 我的w1
是: 10100001
,我的二进制运算w2
是: 0b100110001011110110000010
。
我应该得到: 00100001
您需要使用0b...
来表示二进制数。
同样,在使用int
将字符串转换为数字时,请指定以2为基数(第二个可选参数)。 否则,它将被解释为十进制数:
w2 = int(w1, 2) ^ 0b10000000
# ^ ^^------------ binary (= 128 in decimal)
# |
# optional argument (base 2)
并且,您不需要为0b10000000
调用int
,因为它已经是一个int对象。
更新如果要获取字符串表示形式,请使用str.format
或format
指定为08b
格式(0:前导零,8:至少8位数字,b:二进制)
>>> format(w2, '08b')
00100001
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.