在python上以3位执行xor,但输出为6位

时间:2015-09-27 14:50:26

标签: python

我在python中对000和111执行xor操作。我希望这能输出3位,如下所示:

One: 1 1 1
Two: 0 0 0
XOR: 1 1 1

相反,它输出6位。发生了什么事?

print '{0:b}'.format(000^111)
'1101111' 

1 个答案:

答案 0 :(得分:1)

当您按原样使用000111时,它们会被视为普通整数,而您正在执行的操作是0^1101111,显然是1101111 {1}}(二进制)。

要使用二进制111,您需要使用0bxxxx表单(类似于0x___的十六进制方式):

print '{0:b}'.format(0b0^0b111)