b4u*_*1t3 4 python bit-manipulation low-level high-level
我无法理解为什么要在 Python 等高级语言中使用按位运算符。从我对高级语言和低级语言的了解来看,高级语言通常被设计为您不必太担心进入计算机的机器代码。我不认为用一种语言一点一点地操作程序的意义,据我所知,这种语言旨在避免它。
如果您想要在标准库中使用按位运算符的具体示例,请查看该re
库。 根据 API,这些标志应该按位OR
排列在一起。
这允许您在单个参数中传递大量选项。考虑以下选项:
re.compile(expression,re.I | re.M | re.X)
Run Code Online (Sandbox Code Playgroud)
对比
re.compile(expression,ignorecase=True,multiline=True,verbose=True)
Run Code Online (Sandbox Code Playgroud)
我认为我们可以同意第一个版本至少要紧凑得多。
您可能会想“嗯,我更喜欢第二个——毕竟,它更明确!” ......你可能有一个案例。但是,如果您有一位同事用 C 生成了一个二进制文件,并且他告诉您该文件的标题包含一个 32 位整数字段,并且该整数字段存储解码文件其余部分所需的标志,该怎么办?作为一个通情达理的人,您希望以高级语言处理文件,在这种语言中您可以轻松高效地操作数据,因此您选择了 Python。现在我敢打赌,您很高兴您可以进行按位运算,以免自己需要使用 C 来解码/分析您的文件。