Objective-C位运算符-一次求反运算符

一次求反运算符是一元运算符,它的作用仅是对运算数的位“翻转”。将运算数的每个是1的位翻转为0,而将每个是0的位翻转为1。下面是真值表:

  b1     ~b1
-------------
  0         1
  1         0

如果不知道运算中数值的准确位大小,那么一次求反运算符非常有用,使用它可让程序不会依赖于整数数据类型的特定大小。例如,要将类型为int的w1的最低位设为0,可将一个所有位都是1,但最右边的位是0的int值与w1进行与运算。

w1 &= 0xFFFFFFFE; 用 w1 &= ~1; 替换,那么在任何机器上w1都会同正确的值进行与运算。

这是因为这条语句会对1求反,然后在左侧加入足够的1,以满足int的大小要求(在32位机器上,会在左侧的31个位上加1)。

想了解其他位运算符,请参阅 苹果开发者Mike的 Objective-C位运算符一览表

你可能感兴趣的:(Objective-C位运算符-一次求反运算符)