将代表二进制的字符串转换为Python中的二进制

6

我无法找到解决方案。

基本上,我已经创建了一个字符串,它表示字符的二进制版本,填充以显示所有8位。例如,如果x = 2,则我有0101100110010001,总共8个数字。现在,我有两个相同长度的字符串要进行XOR运算,但Python会认为它是字符串而不是二进制。如果我使用bin()函数,它会抛出错误,因为它是字符串。所以,如果我将其转换为int,那么就会删除前导零。

所以,我已经得到了我想要的二进制表示,我只需要让Python知道它是二进制的,有什么建议吗?

这是我用来创建我的二进制字符串的当前函数:

for i in origAsci:
    origBin = origBin + '{0:08b}'.format(i)

提前感谢!


1
为什么您不能将整数进行异或运算,然后在左侧填充零? - Patrick Haugh
bin(22929) 打印 '0b101100110010001',你需要在前面加上 0b。
- Peter Majko
从一个比特串中获取一个 int,执行 int('010101010', 2) - Patrick Haugh
1个回答

11
使用Python的int()函数将字符串转换为整数。由于二进制使用基数2,因此将基数参数设置为2:
binary_str = '10010110' # Binary string
num = int(binary_str, 2)
# Output: 150

接下来,使用bin()函数将整数转换为二进制:
binary_num = bin(num)
# Output: 0b10010110

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接