在Objective-C中对两个值执行按位或运算时,会逐位比较两个值的二进制表示。此时,只要第一个值或者第二个值的相应位是1,那么结果的对应位就是1。按位或操作符的真值表:
b1
b2
b1 | b2
0
0
0
0
1
1
1
0
1
1
1
1
-------------------------
所以,如果w1是short int,等于十六进制的19,w2也是short int,等于十六进制的6a,那么对w1和w2执行按位或会得到十六进制的7b,如下所示:
w1
0000 0000 0001 1001
0x19
w2
0000 0000 0110 1100
| 0x6a
-----------------------------------------------
w3
0000 0000 0111 1011
0x7b
按位或操作通常就称为
按位OR,用于将某个词的特定位设为1。例如,以下语句将w1最右边的三位设为1,而不管这些位操作前的状态是什么都如此。
w1 |= 07;
更多Objective-C语法相关内容,敬请访问
苹果开发者新浪博客。
想了解其他位运算符,请参阅
Objective-C位运算符一览
表