なぜbitwise notはトグルビットとして期待どおりに機能しませんか?以下の例を参照してください:PythonのBit-wise NOTの意味
a = 5
print(bin(a))
b = ~a
print(bin(b))
これが出力されます:
0b101
-0b110
左からの最初のビットがトグルされていない理由の質問はありますか?
Pythonドキュメントが言うことを考える:
を〜xは、xの補数を返します - あなたは1
0とそれぞれ0各 1を切り替えて取得数を
編集: "〜"は単純なビットのトグルの演算子ではなく、代わりに2の補数の演算子ですか? もしそうなら、なぜドキュメントから引用された文がそれを伝えていないのですか?上記のPythtonの文書の文章は、私にこれを意味するものではありません。
を参照してくださいので、2の補数 –
ノートのそれ '-' -0b110''の前に、
'0b110'
されています。無限の一連の '1 'が左に後ろにあることを示すことはできないので、' bin(abs(b)) 'の前に' - '記号を表示しています。 – user2357112プリアンブル - https://wiki.python.org/moin/BitwiseOperators –