我一直在Kochan的书《 Objective-C中的编程》中阅读关于Objective-C的位运算符。
我对这部分感到非常困惑,尽管到目前为止我已经真正理解了大多数其他内容。
这是这本书的引文:
按位与运算符
按位与运算通常用于屏蔽操作。也就是说,可以轻松地使用该运算符将数据项的特定位设置为0。例如,语句
w3 = w1 & 3;
将w1的值与常数3进行按位“与”运算。这具有将w中的所有位(除最右边的两位设置为0之外)并保留w1的最右边两位相同的效果。
与C中的所有二进制算术运算符一样,通过添加等号,也可以将二进制位运算符用作赋值运算符。该声明
word &= 15;
因此执行以下功能:
word = word & 15;
此外,它还具有将单词的除最右边的四位之外的所有其他位都设置为0的作用。当在执行按位运算时使用常量时,通常更方便地以八进制或十六进制表示法来表示常量。
好的,这就是我要了解的内容。现在,我对这整个概念非常困惑,我只是想澄清一点,是否有人愿意在这方面帮助我。
当书中现在提到“设置所有位”时,所有位都正确。那不是2进制的0或1,换句话说就是二进制吗?
如果是这样,为什么在第一个示例中,除“最右边的2”之外的所有位都都设为0?是2是因为它是3-1,所以我们的常数是3?
谢谢!