私はこの問題を抱えています。ご協力いただきありがとうございます。異なる右端のビットを見つける
あなたには2つの整数nとmが与えられています。それらがバイナリ表現で異なる右端のビットの位置を見つけます(そのようなビットが存在することが保証されています)。右から左に数えます。
2position_of_the_found_bit(0ベース)の値を返します。
例
についてはn = 11およびm = 13、出力があるべき differentRightmostBit(N、M)= 2
11(添字10)= 1011(添字2)、13(下付き文字)10 = 1101(下付き文字2)、それらが異なる右端のビットは、バイナリ表現の右から1位のビット(0ベース)です。 答えは1の2乗= 2です。
あなたは何をしましたか? –
私はビット演算子を学び始めました。あなたが私に正しい方向を向けるヒントを与えることができるかどうか疑問に思っていました。ありがとう。 – brewersfan1976
片方向:XORを実行すると、すべての共通ビットがゼロに設定され、一致しなかったビットが設定されます。さて、右から始めて、最初の非ゼロビットのビット位置を見つけてください。すなわち右シフトまたはビット位置をチェックするだけである。 –