首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >|运算符versus ||运算符

|运算符versus ||运算符
EN

Stack Overflow用户
提问于 2010-09-05 11:54:41
回答 5查看 391关注 0票数 7

简单的问题是,相对于|| (or)运算符,|运算符做了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-05 12:15:52

|是按位OR运算符,而as ||是逻辑OR运算符。也就是说,前者用于将来自两个数值的位“组合”为一个联合,而后者则在运算符左侧或右侧的任何一个条件为真时求值为真。

具体地说,按位运算符(与逻辑运算符混淆的是)对数字的每一位(在相同的序数位置)进行运算,并相应地计算结果。在按位OR的情况下,如果任一位为1,则结果位为1,而仅当两位均为0时,结果位为0。例如,1|2 = 3,因为:

代码语言:javascript
复制
1 = 0001
2 = 0010
--------
    0011 = 3

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

代码语言:javascript
复制
2 = 0010
3 = 0011
--------
    0011 = 3

这可能一开始看起来很困惑,但最终你会掌握它的诀窍。按位OR主要用于在位字段上设置标志的情况。也就是说,在单个值(通常是32位数字)中保存一组相关条件的开/关状态的值。在Win32中,窗口样式值是位字段的一个很好的例子,其中每个样式由单个位(或标志)表示,如WS_CAPTION,它指示窗口是否有标题栏。

票数 11
EN

Stack Overflow用户

发布于 2010-09-05 11:59:32

在一个字中有几个(通常是32、16、8或64)位。逐位OR (一个竖线)返回该位位置中每个位位置的逻辑OR。逻辑OR (两个竖线)仅返回TRUE或FALSE。

票数 3
EN

Stack Overflow用户

发布于 2010-09-05 11:55:16

|bitwise or运算符。维基百科的页面Operators in C and C++很好地描述了所有的运算符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3644953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档