4.5.2 按位或运算符
在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 1010|0x6a
0000 0000 0111 1011 0x7b
按位或操作通常就称为按位OR,用于将某个词的特定位设为1。例如,以下语句将w1最右边的三位设为1,而不管这些位操作前的状态是什么都是如此。
w1=w1|07;
当然,可以在语句中使用特殊的赋值运算符,如下面的语句所示:
w1|=07;
我们在后面会提供一个程序例子,演示如何使用按位或运算符。