简单的问题是,相对于|| (or)运算符,|运算符做了什么?
发布于 2010-09-05 12:15:52
|是按位OR运算符,而as ||是逻辑OR运算符。也就是说,前者用于将来自两个数值的位“组合”为一个联合,而后者则在运算符左侧或右侧的任何一个条件为真时求值为真。
具体地说,按位运算符(与逻辑运算符混淆的是)对数字的每一位(在相同的序数位置)进行运算,并相应地计算结果。在按位OR的情况下,如果任一位为1,则结果位为1,而仅当两位均为0时,结果位为0。例如,1|2 = 3,因为:
1 = 0001
2 = 0010
--------
0011 = 3此外,2|3 = 3,因为:
2 = 0010
3 = 0011
--------
0011 = 3这可能一开始看起来很困惑,但最终你会掌握它的诀窍。按位OR主要用于在位字段上设置标志的情况。也就是说,在单个值(通常是32位数字)中保存一组相关条件的开/关状态的值。在Win32中,窗口样式值是位字段的一个很好的例子,其中每个样式由单个位(或标志)表示,如WS_CAPTION,它指示窗口是否有标题栏。
发布于 2010-09-05 11:59:32
在一个字中有几个(通常是32、16、8或64)位。逐位OR (一个竖线)返回该位位置中每个位位置的逻辑OR。逻辑OR (两个竖线)仅返回TRUE或FALSE。
发布于 2010-09-05 11:55:16
|是bitwise or运算符。维基百科的页面Operators in C and C++很好地描述了所有的运算符。
https://stackoverflow.com/questions/3644953
复制相似问题