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

Mary-Kate Olsen
リリース: 2024-11-11 18:52:03
オリジナル
933 人が閲覧しました

Why Does ~2 Result in -3 in Python?

Python のビット単位の補数演算子 (~ チルダ) を調べる

ビット操作を扱う場合、Python の ~ 演算子がどのように動作するかを理解することが重要です。この演算子は、指定された数値の各ビットを補完し、基本的に 0 と 1 を反転します。

なぜ ~2 の結果は -3 になるのか

~ 演算子は、a のビットを補完します。ただし、結果の値の解釈はマシンのアーキテクチャによって異なります。ほとんどのシステムでは、負の数は 2 の補数 を使用して格納されます。

~2 がどのように -3 を生成するかを理解するために、-2 (8 ビット) の 2 の補数表現を調べてみましょう。

これは、正の対応するビット (0000 0010) を反転して 1111 1101 になり、1 を加算することで得られます。左端のビット (1) は負の数を示します。

~ 演算子の仕組み

2 (0000 0010) に適用すると、~ 演算子は各ビットを次のように補います。生成 1111 1101: これは、-3 の 2 の補数表現と同じです。したがって、~2 = -3 となります。

~ 演算子の意味

~ 演算子は単にビットを反転するだけであることに注意することが重要です。結果の値の解釈はマシンによって決定されます。これは、~ 演算子の動作が、基礎となるアーキテクチャとデータ表現標準に応じて異なる可能性があることを意味します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート