ホームページ >バックエンド開発 >Python チュートリアル >Python で「~2」が「-3」になるのはなぜですか?

Python で「~2」が「-3」になるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-17 17:11:02622ブラウズ

Why Does `~2` Yield `-3` in Python?

Python のビット単位の補数演算子 (~) を理解する

Python では ~2 が -3 になるのはなぜですか?ビット単位の補数演算子 (~) はチルダとして表されることが多く、ビット単位の演算において重要な役割を果たします。その仕組みを理解するために、2 の補数表現の概念を詳しく見てみましょう。

Python の負の整数は、2 の補数を使用して格納されます。これには、正の対応するものの 2 進表現を反転して 1 を加算することが含まれます。たとえば、2 の補数での -2 の 2 進表現は次のとおりです。

1111 1110

これは、2 の 2 進表現 (0000 0010) のビットを反転して 1 を加算することによって取得されます。先頭のビットは、負の値を示す符号ビットとして機能します。

次に、2 つのリードに補数演算子を適用して -3 を得る方法を調べてみましょう。

two: 0000 0010
~two: 1111 1101

単純にビットを反転します。 2 の結果、反転された表現になります。ただし、この反転表現は、-3 の 2 の補数表現、つまり次のように一致します。

1111 1101

したがって、補数演算子を 2 に適用すると、-3 の 2 の補数表現が効果的に提供されます。

補数演算子 (~) は単に数値のビットを反転するだけであることに注意することが重要です。これらのビットの実際の解釈は、それらが使用されるマシンのアーキテクチャとコンテキストによって異なります。 Python の整数の場合、マシンは負の数の 2 の補数表現に従って反転されたビットを解釈します。

以上がPython で「~2」が「-3」になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。