重複の可能性:
Python - '>>' 演算子
これを行うコードがいくつかあります:
x = n - 1 >> 1
さらに構文を提供する必要があるかどうかはわかりませんが、>> はどういう意味ですか? いろいろ調べてみましたが、説明が見つかりません。
重複の可能性:
Python - '>>' 演算子
これを行うコードがいくつかあります:
x = n - 1 >> 1
さらに構文を提供する必要があるかどうかはわかりませんが、>> はどういう意味ですか? いろいろ調べてみましたが、説明が見つかりません。
その右シフト論理、それはその量だけビット単位でシフトする数を指示するビット単位の演算です。この場合、1でシフトします。これは、2で割ることに相当します。
ビット演算を理解していない場合は、覚えておくべき簡単な変換はこれです。
x >> n
と同等です
x //(2 ** n)
これは、ビット単位の右シフト演算子です。
整数引数のビットを、式の右辺の数値だけ右にシフトします。
>>> 8 >> 2
2
またはバイナリで示されています:
>>> bin(0b1000 >> 2)
'0b10'
コード例は、算術演算とビット演算が混在しているため、実際には二重に混乱しています。代わりに「//」整数除算演算を使用する必要があります。
x = (n - 1) // 2
>> はビットごとの右シフト演算子です。この演算子は、第 1 オペランドのすべてのビットを第 2 オペランドの右に移動します。
つまり: a >> b = a // 2**b
例:
演算子は加算の後に続くことに注意してください。したがって、コードは最初に n-1 を実行し、次にそれを 1 ビット右シフトします (つまり、2 で除算します)。
x >> y
と同等です
x.__rshift__(y)
他の人が言ったように、これはビットシフトを意図しています。