-3

|=演算子の意味がわかりません。

最初、私はchecker|=(1<<val)意味を考えchecker= checker+checker|(1<<val)ました。コードをデバッグした結果、 とchecker|=(1<<val)は異なることがわかりましたchecker= checker+checker|(1<<val)

|=オペレーターはどのように働きますか?

public static boolean isUniqueChars(String str){
   int checker = 0;
   for(int i=0; i<str.length();++i){
       int val = str.charAt(i)-'a';
       if((checker &(1<<val))>0) return false;
       checker |=(1<<val);  // what does it mean ?
      // checker= checker +checker|(1<<val);
   }
   return true;
}
4

4 に答える 4

2

その意味は

checker = checker|(1<<val)

効果的にビット番号 [val] を 1 に設定します - ビットごとの OR で、単一の 1 を左に [val] 回シフトします。

于 2013-03-31T08:33:17.433 に答える
2
checker |=(1<<val);

と同じです

checker = checker|(1<<val)

| | 論理 OR 演算 (ビットレベル)

于 2013-03-31T08:34:49.657 に答える