c - |运算符与 ||运算符(operator)

标签 c operators

一个简单的问题,但是 | 运算符与 ||(或)运算符相比有什么作用?

最佳答案

| 是按位 OR 运算符,而 || 是逻辑 OR 运算符。即,前者用于将来自两个数值的位“组合”为一个 union ,而如果运算符左侧或右侧的条件为真,则后者的计算结果为真。

具体来说,按位运算符(不要与逻辑运算符混淆)对数字的每一位(在相同的序号位置)进行运算,并相应地计算出一个结果。在按位 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,它指示窗口是否有标题栏。

关于c - |运算符与 ||运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644953/

相关文章:

c - SDL_WINDOWEVENT_RESIZED 与 SDL_WINDOWEVENT_SIZE_CHANGED

c - 实现外部函数接口(interface)的指南

c - gcc 数组中的值不一致

scala - Scala 的 += 在 Int 的上下文中定义在哪里?

C fread() 一个结构体

java - = java中的运算符

operators - Unicode字符的文档在哪里,例如 "»",对于Raku?

python - "is"运算符对整数的行为异常

python - Python按位赋值运算符中的竖线

python - 如何调用需要导入包的python文件?