コンピュータはビットで整数を表します。これは数値のバイナリ表現です(つまり、基数2を使用します)。バイナリの数字は0と1、または "off"と "on"です。あなたはバイナリに精通していない場合、あなたはそれをよく読んでする必要がありますが、基本的には次のようにバイナリでカウント:
0000
0001
0010
0011
0100
0101
0110
のように...各列だから0から始まる2^n
で表すことができます番号0101 = 2^3*0+2^2*1+2^1*0+2^0*1 = 5
。今あなたが何かを "ビットマスク"するとき、あなたは基本的にあなたに価値のビットを見ているだけです。あなたのケースでは、あなたは "2^3
"ビットだけを見ています。これは、各ビットにマスク内の対応するビットを単純に乗算するだけで簡単に実行できます。これは多くのことに役立ちます。時々、各ビットに意味を割り当て、それがオンかオフかを伝えることは非常に重要です。
あなたの例では、私たちは13で通過した場合、これは起こる:
13 means 1101 in computer speak
1101 mask with 1000. Work on each bit individually:
1 * 1 = 1
1 * 0 = 0
0 * 0 = 0
1 * 0 = 0
checker = 1000 which means 8.
8 > 0 so return on.
5でfalseを返す例を:
5 means 0101 in computer speak
0101 mask with 1000. Work on each bit individually:
0 * 1 = 0
1 * 0 = 0
0 * 0 = 0
1 * 0 = 0
checker = 0000 which means 0.
0 is not > 0 so return off.
・ホープ、このことができます。あなたは、Googleのマシン上でこのようなものに関する広範な情報を見つけることができるはずです。
https://en.wikipedia.org/wiki/Mask_(computing) –
ありがとう!そのリンクは本当に助けになった! – mathtron999