在操作之前是否应该转换一个长二进制字符串

Should a convert a long binary string before operation on it

在一个问题中,我应该处理以二进制形式给出的长输入。喜欢

"1000101011111101010100100101010101010101"

我需要在这个问题中使用按位运算符 OR |。我研究了这个运算符的使用,它似乎适用于常规整数而不是二进制文件。所以我在上面调用 int(thing, 2) 。之后,我使用按位运算符。但是有些事情让我很困扰。 python 解释器不是再次将它改回二进制以在其上应用按位或吗?所以这不是重复的步骤吗?

没有其他方法可以直接使用这个字符串,也许对所有字母进行迭代是更好的方法?还有一个关于整数精度的问题。因为有时输入大于500个字符所以我不能把它存储为一个整数。

我试过这样的东西,想象一下 ab 是两个二进制字符串。

for comparison in zip(a, b):
    if any(comparison):
       # Do stuff if OR gives 1

事实证明这确实很慢。请赐教。

提前致谢。

首先肯定使用int(binary_string, 2)任何其他方法都需要更长的时间。 (虽然使用zip和any的for循环很聪明,但不是最优的)

Python 解释器不会将您的数字改回二进制,因为计算机已经将数字作为二进制存储在内存中,它将使用 CPU 指令对 2 个数字进行或运算而不转换它们第一的。没有重复的步骤。