[解決済み] なぜ ~True は -2 になるのですか?
2022-06-05 04:29:37
質問
Pythonのコンソールで。
~True
与える。
-2
なぜですか?どなたかこの特殊なケースをバイナリで説明していただけませんか?
どのように解決するのですか?
int(True)
は
1
.
1
は
00000001
と
~1
は
11111110
どれが
-2
で
2の補数
1
1 すべてのビットを反転させ、結果の数値に1を加え、その結果を 2進表現 として解釈し、負の符号を追加します (数値が 1 で始まるため)。
11111110 → 00000001 → 00000010
↑ ↑
Flip Add 1
というのは2ですが、符号がマイナスになっているのは MSB は1なので、符号は負になります。
言及する価値がある。
について考える
bool
について考えてみると、これは数値的な性質を持っていることがわかります。
True
と
False
で、これらは整数の1と0をカスタマイズしたもので、印字方法だけが異なります。これらは
サブクラス
のサブクラスで、整数型
int
.
つまり、これらは1や0と全く同じ振る舞いをしますが、例外として
bool
は再定義します。
str
と
repr
を使えば、それぞれ異なる表示ができます。
>>> type(True)
<class 'bool'>
>>> isinstance(True, int)
True
>>> True == 1
True
>>> True is 1 # they're still different objects
False
関連
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] 誰かPythonで__all__を説明してくれませんか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
Python jiabaライブラリの使用方法について説明
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python入門 openを使ったファイルの読み書きの方法
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Pythonのチルダ演算子について