为什么要使用按位运算符?
Why would you use Bitwise operators?
所以我目前正在通过《SAMS每天1小时自学c++》这本书学习c++。到目前为止,它非常棒——我已经理解了所说的一切,并且我已经设法在简单的程序中使用它们来实践它们。
然而,我刚读到Bitwise操作符的部分,我完全被难住了。我知道你有&, ~, |, <<,>>等等,我也知道每一个都对二进制形式的数字执行不同的动作,因为~将数字翻转过来。
我的问题是,我就是不明白你要如何以及为什么要使用它们。我取一个整型数,把它的二进制数字翻过来,得到另一个数字,这很好,但这对我有什么帮助呢?我希望你能解释一下为什么你会使用每一个,如果可能的话,也许是一个例子?
谢谢大家!
有很多应用程序,但这里有两个例子。假设在一个1字节容器中存储了8个1位值。按位计算,加上2的幂可以很容易地访问单个比特。
如果你正在扫描RGB图像中的高强度像素,你可以使用位- 128对三种颜色值;这比另一个布尔表达式(如R>128)更快。
相关文章:
- 为什么比较运算符如此快速
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 为什么模数运算符不适用于该代码
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 为什么在运算符重载时需要参考?
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 为什么文本运算符不能正常模板化?
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 为什么我收到错误:"运算符<<不匹配?
- 为什么初始化时没有调用重载赋值运算符?
- 为什么此对箭头 (->) 运算符的调用失败?
- 为什么 C++ 11 在 ios 类中添加了运算符 bool
- 三元运算符为什么以及何时返回左值?
- 超载运算符C :为什么分母乘以10
- 成员函数中的Const运算符(为什么可以分为两个不同的部分)
- 位运算符:为什么~35=-36