1
私はbitwise演算子でいくつかの作業をしています。通常、bin()を使って整数を変換します。私はそれぞれの試行でエラーが発生しています。なぜbinthonの演算子がbin()の返り値で動作しないのですか
foo = 5
binfoo = bin(foo)
bar = ~(binfoo)
最後の行は、私たちが混乱するところです。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: bad operand type for unary ~: 'str'
bin()が文字列を返す場合、これらのビット演算子は何を期待していますか?
ビット演算子は整数を期待していますので、 '〜foo'を試してみてください。 'bin'関数はバイナリ*文字列表現*を作成して出力します。 – jonrsharpe
'bin()'は整数ではなく文字列を返します(ビット演算子は文字列ではなく*整数*で動作します)。 –
フードの整数*は*ビットパターンです - ビットワイズ演算子が直接作業します。これらのビットパターンの文字列表現では機能しません。なぜビット演算子は 'bin()'を使って「通常始まる」と思いますか?実際、彼らは決してそのように始まらない。それでも、これは、プログラミングに新しい人が尋ねるのはかなり自然な問題であるという意味で、有用な質問です。私はそれがdownvoteに値するとは思わない。 –