2017-07-01 56 views
1

有一种解决方案可用于按位操作。但是,它转换二进制数的整数,然后做按位操作。我已经有了二进制格式的数字。我如何执行这些数字的按位操作?例如, x = 10101,y = 11001 我希望z = x或y为11101. 任何帮助都非常感谢。python中的按位操作

回答

1

您可以将其转换为字符串,然后int(.., 2)(2 => 2为基数)的小数转换为二进制:

>>> str(x) 
'10101' 
>>> int(str(x), 2) 
21 

你想操作(| =>按位或):

>>> int(str(x), 2) | int(str(y), 2) 
29 

然后,使用format(或str.format与格式字符串b->表示二进制表示形式)和将其转换回十进制3210:

>>> format(int(str(x), 2) | int(str(y), 2), 'b') 
'11101' 
>>> int(format(int(str(x), 2) | int(str(y), 2), 'b')) # back to integer 
11101