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;


我们在后面会提供一个程序例子,演示如何使用按位或运算符。