Objective-C位运算符-按位与运算符

对两个值执行与计算时,会逐位比较两个值的二进制表示。第一个值与第二个值对应位都为1时,在结果的对应位上就会得到1;其他的组合在结果中都得到0。如果b1和b2表示两个运算数的对应位,那么下面这个真值表就显示了在b1和b2所有可能值下对b1和b2执行与操作的结果。

  b1     b2         b1 & b2
-------------------------
  0       0           0
  0       1           0
  1       0           0
  1       1           1

例如,如果w1和w2都定义为short int,w1等于十六进制的15,w2等于十六进制的0c,那么以下Objective-C语句会将值0x04指派给w3:

w3 = w1 & w2;

将w1,w2,w3都表示为二进制后可更清楚地看到此过程。假设所处理的short int大小为16位:

w1     0000 0000 0001 0101         0x15
w2     0000 0000 0000 1100       & 0x0c
-----------------------------------------------
w3     0000 0000 0000 0100         0x04

按位与运算经常用于 屏蔽运算。就是说,这个运算符可轻易地将数据项的特定位设置为0。


Mike还需要提醒大家注意的是,与Objective-C中使用的所有二元运算符相同,通过添加等号,二元位运算符可同样用作赋值运算符。因此语句

word &= 15;

与下列语句

word = word & 15;

执行相同的功能。

想了解其他位运算符,请参阅 Objective-C位运算符一览 表

你可能感兴趣的:(c)