[英]Python Convert binary String to binary int
我使用以下函数将整数转换为二进制。 同时添加其他零(16位)。 但是结果来自二进制字符串,当我在带有“按位左移和按位AND运算符”的if语句中使用它时,这给我带来了问题。
def binary(num, length=16):
return format(num, '#0{}b'.format(length + 2))
在上下文中使用的功能:
if (binary(1024) & (1<<2)):
print "Bit 2 is SET"
但是得到以下错误信息:
Traceback (most recent call last):
File "log.py", line 209, in <module>
if (binary(1024) & (1<<2)):
TypeError: unsupported operand type(s) for &: 'str' and 'int'
简单解释一下:
"0b0000010000000000" to be: 0b0000010000000000
有什么简单的解决方案吗?
每当您在数字上使用任何按位运算符时,它都会自动应用它,就像我们通常可视化对二进制值执行的操作一样。
在您的情况下,您可以简单地先将字符串转换为整数,然后如果您愿意,还可以使用bin( )
函数获得相同数字的二进制表示形式,该函数以二进制表示形式返回字符串。
这是代码:-
numstring = "15"
num_in_base_10 = int(numstring)
string_in_binary_form = bin(num_in_base10)
#If you dont want the 0b prefix of the binary repr , you can simple do ,
string_in_binary_form.replace('0b','') which would return the string without 0b prefix.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.