| 运算符与|| 操作者

Noo*_*ath 6 c operators

简单的问题但|运营商与||(或)运营商相比做了什么?

Jav*_*t93 11

|是一个按位运算OR符,它||是一个逻辑OR运算符.即,前者用于"组合"来自两个数值的位作为并集,而后者用于在运算符的左侧或右侧的任一条件为真时求值为真.

具体而言,位运算符(与逻辑运算符混淆)上的数字(在相同顺序位置)的每个位进行操作,并相应地计算结果.在按位的情况下,OR如果任一位为1,则结果位为1;如果两个位均为0,则结果为0.例如,1 | 2 = 3,因为:

1 = 0001
2 = 0010
--------
    0011 = 3
Run Code Online (Sandbox Code Playgroud)

此外,2 | 3 = 3,因为:

2 = 0010
3 = 0011
--------
    0011 = 3
Run Code Online (Sandbox Code Playgroud)

这一开始看起来很混乱,但最终你会对此感到困惑.Bitwise OR主要用于在位字段上设置标志的情况.也就是说,保持单个值(通常是32位数)中的一组相关条件的开/关状态的值.在Win32中,窗口样式值是位字段的一个很好的示例,其中每个样式由单个位(或标志)表示,如WS_CAPTION,它指示窗口是否具有标题栏.