私は、Kochan の本「Programming in Objective-C」で Objective-C のビット演算子について読んでいます。
私はこの部分について非常に混乱していますが、これまでに提示された他のほとんどすべてを本当に理解しています.
ここに本からの引用があります:
ビットごとの AND 演算子
ビット単位の ANDing は、マスキング操作によく使用されます。つまり、この演算子は、データ項目の特定のビットを 0 に設定するために簡単に使用できます。たとえば、ステートメント
w3 = w1 & 3;
これは、w1 の値を定数 3 とビットごとに AND 演算したものを w3 に割り当てます。これは、w の右端の 2 ビットを除くすべてのビットを 0 に設定し、w1 の右端の 2 ビットを保持するという同じ効果があります。
C のすべてのバイナリ算術演算子と同様に、バイナリ ビット演算子は、等号を追加することによって代入演算子としても使用できます。ステートメント
word &= 15;
したがって、次と同じ機能を実行します。
word = word & 15;
さらに、ワードの右端の 4 ビットを除くすべてを 0 に設定する効果があります。ビット単位の演算を実行する際に定数を使用する場合は、通常、定数を 8 進数または 16 進数で表す方が便利です。
わかりました、それが私が理解しようとしていることです。今、私はこの概念全体のほとんどに非常に混乱しており、誰かが私を助けてくれるかどうかを少し明確にしたいと思っています.
本が「すべてのビットを設定する」と言及しているとき、すべてのビット..正確にはビットとは何ですか。2進数、つまり2進数で0か1じゃないですか?
もしそうなら、最初の例で、「一番右の 2」を除くすべてのビットが 0 になっているのはなぜですか? 定数から 3 を取って 3 - 1 なので 2 ですか?
ありがとう!