gpt4 book ai didi

Python 对大型二进制字符串的按位运算

转载 作者:行者123 更新时间:2023-11-28 16:23:55 24 4
gpt4 key购买 nike

我想对长度超过 100 个 0 和 1 的二进制字符串执行按位运算。我知道我可以使用 int('1'*100, 2) 之类的东西来转换它们,它在末尾打印 1267650600228229401496703205375LL 字符。然后使用 python 按位运算符,但我认为将它们转换为整数是个坏主意。还有其他方法吗?

最佳答案

我猜您不喜欢使用整数的想法,因为它会混淆您的基础数据。此外,它使得处理以“0”开头的字符串变得困难(因为它们在转换为整数时会被剪掉),更不用说带符号整数和字节顺序的微妙之处了。

尝试使用bitarray模块,可以用pip安装:pip install bitarray

from bitarray import bitarray
ba1 = bitarray('0' + '1'*100)
ba2 = bitarray('1' + '0'*100)

len(ba1) # 101
len(ba2) # 101
ba1[0] # False
ba2[0] # True

ba1 | ba2 # bitarray('1111111111.......)

# get your string back
ba1.to01() # "01111111......."

我不能说效率。但至少感觉清楚你在做什么。

也适用于 python3

文档:https://pypi.python.org/pypi/bitarray/0.8.1

关于Python 对大型二进制字符串的按位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com