我一直在阅读Kochan的书"Objective-C编程"中的Objective-C中的位运算符.
我对这一部分非常困惑,尽管到目前为止我已经真正了解了大部分内容.
以下是本书的引用:
按位AND运算符
按位AND运算经常用于屏蔽操作.也就是说,可以容易地使用该运算符将数据项的特定位设置为0.例如,语句
w3 = w1 & 3;
Run Code Online (Sandbox Code Playgroud)
w3将w1的值与常数3进行逐位AND运算.这与将w中的所有位设置为相同的效果,除了最右边的两位为0,并保留w1中最右边的两位.
与C中的所有二进制算术运算符一样,二进制位运算符也可以通过添加等号用作赋值运算符.该声明
word &= 15;
Run Code Online (Sandbox Code Playgroud)
因此执行与以下相同的功能:
word = word & 15;
Run Code Online (Sandbox Code Playgroud)
此外,它具有将除最右边的四位字之外的所有字设置为0的效果.当使用常量执行按位运算时,以八进制或十六进制表示法表示常量通常更方便.
好的,这就是我想要了解的内容.现在,我对这整个概念非常困惑,我只想找一点澄清,如果有人愿意帮我解决这个问题.
当书现在引用"设置所有位"时,所有位......究竟是什么.这不仅仅是第二个基数中的0或1,换句话说,二进制?
如果是这样,为什么在第一个例子中除了"最右边2"到0之外的所有位?它是2,因为它是3 - 1,从我们的常数中取3吗?
谢谢!