繁体   English   中英

Python将二进制字符串转换为二进制整数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM