所以我目前正在通过《SAMS 每天 1 小时自学 C++》一书学习 C++。到目前为止,一切都很棒——我已经理解了所说的一切,并且我已经成功地在简单的程序中使用它们来练习它们。
然而,我刚刚读到有关按位运算符的部分,我完全被难住了。我知道你有 &、~、|、<<、>> 等,并且我知道每个数字对二进制形式的数字执行不同的操作,因为 ~ 翻转数字。
我遇到的问题是我无法理解你想要如何以及为什么使用它们。我可以采用一个 int,将二进制数字翻转并得到另一个数字,但这对我的形状或形式到底有什么帮助呢?我希望能解释一下为什么你会使用每一个,如果可能的话,也许可以举个例子?
感谢大家!
应用有很多,这里举两个例子。假设您有八个一位值存储在一个字节容器中。按位和 2 的幂可以轻松访问各个位。
如果您要扫描 RGB 图像中的高强度像素,则可以对三个颜色值使用按位与 128;这比另一个布尔表达式(如 R>128)更快。