2017-01-31 8 views
-2

バイナリ数字aを持つ数字を取り、NOT? (例えば、18 [二進数10010]の関数の値は13 [二進数01101]になります。)これはチルダ演算子(〜)と同じものだと思っていましたが、18にマイナス記号その代わりに、13の代わりに。Pythonではビット単位のNOT演算子は何ですか?

+4

あなたは '〜18'が'であることを-18' _sure_です。あなたは本当に確信していますか?私は '-19'を取得します – Eric

+0

' 13^0b11111' –

+3

'〜'はビット単位ではありません。具体的には、標準的なPython intの場合、bignumはビットではなく、signedです。何らかの理由で、5ビットの符号なしビット単位のNOTを期待しているようです。 – user2357112

答えて

5

コメントに記載されているように、はビット単位ではありません。

あなたが5ビットの符号なしビット単位のNOTをしたい場合は、マスクとXORを使用することができますに:

>>> n = 0b10010 # 18 
>>> m = 0b11111 
>>> n^m 
13 
関連する問題