これを見つけたのはthis websiteです。この声明は何を意味していますか?
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
私はこの文を何度か見たが、それが何を意味するか知っていたことがありません 「...位置& 1」を求めている:/けれども私は知っているために、その便利を推測:P
ありがとう!
これを見つけたのはthis websiteです。この声明は何を意味していますか?
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
私はこの文を何度か見たが、それが何を意味するか知っていたことがありません 「...位置& 1」を求めている:/けれども私は知っているために、その便利を推測:P
ありがとう!
&
は、bitwise AND operatorです。基本的に(position & 1)
は、位置の最下位ビットが1
または0
であるかどうかをチェックしています。これは、position
が奇数か偶数かをチェックする方法です。
Java演算子の完全な実行については、たとえば次を参照してください。 http://download.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html。
position
と1
の値のbitwise ANDです。
position
の最下位ビットが1
の場合は1
を返し、それ以外の場合は0
を返します。
単一の&
符号はビット単位のAND演算です。通常、ビットマスクを適用するためにそれらを使用します。このケースでは、position
の最後(最下位)ビットが1の場合、& 1
は、「位置」の各ビットを1で "and-ing"することによって最後のビット以外のすべてをゼロにするため、(position & 1) == 1
が真となります。
duplicate [ビット演算子とは何ですか?](http://stackoverflow.com/questions/276706/what-are-bitwise-operators) –