我有两个变量,Read和Out。
阅读是一个字符串,例如“1101”,接下来是Out,它将是一个跟随相同二进制格式的int,例如100000等。我需要执行一个操作,这样如果我的两个变量是
>>1000
>>1011
Output: 0011
我曾尝试使用Read ^ Out,我试图将它们转换为十六进制并执行此操作,但它们总是与其他数字一起使用(2-9)。输出需要为Int或二进制文字(0b0101)
编辑:然后将该值发送到另一个函数,如Write(0x20,0x13,Out)。每当它被发送时,如果它是二进制文件,Python会自动将其转换为int,这会在以后引起问题。
答案 0 :(得分:3)
^
适用于整数。
您可以将字符串转换为具有指定基数的整数:
int(x = 0) - >整数
int(x,base = 10) - >整数
对于相反的转换,有bin()
。
In [1]: bin(int('1000', 2) ^ int('1011', 2))
Out[1]: '0b11'
其余的是字符串格式化问题。如果您希望始终使用四位数而不使用前缀,请查看arshajii's answer。
答案 1 :(得分:2)
我相信除了^
之外你还在寻找格式化操作:
>>> a = int('1000', 2)
>>> b = int('1011', 2)
>>> format(a ^ b, '04b')
'0011'
请注意,二进制文件中的11
等于0011
:
>>> int('11', 2) == int('0011', 2)
True
它归结为数字如何表示为字符串。
答案 2 :(得分:1)
使用基数为2的int()转换两个变量:
>>> bin(int("1000", 2) ^ int(1011, 2))
>>> 0b11