Python ビット単位の NOT

Fariba Laiq 2023年6月21日
Python ビット単位の NOT

Python のビット演算では、個々のデータ ビットに対して最も正確な操作を行うことができます。 Python 演算子は、整数に対するビットごとの論理演算をサポートしています。

この記事では、Python の Bitwise NOT 演算子について説明します。

Python のビット単位の NOT演算子

Bitwise NOT (または補数) は、各ビットに対して論理否定を実行して、提供されたバイナリ値の 1つの補数を作成する単項演算であり、ビット単位の演算です。 0 のビットは 1 に変化し、1 のビットは 0 に変化します。

Bitwise NOT は、値の 2 の補数から 1 を引いたものに相当します。 符号ビットと呼ばれる特定のビットは、整数が正か負か (整数の符号) を格納するために使用されます。正の数は負の数になり、正の数は負の数になります。このビットもビット単位の NOTの影響を受けるためです。

構文:

~a

Bitwise NOT 演算子の記号は ~ です。

次の例では、値 1289 を持つ変数 a を宣言しています。 次に、それを変数 x に代入します。ここで、a の値と補数の値を加算し、-1 である x の値を出力します。

コード例:

# Python 3.x
a = 1289
x = a + ~a
print(x)

出力:

#Python 3.x
-1

次のコード例では、変数 x を宣言し、20 を割り当てました。 次に、出力に示すように、-21 を与える Bitwise NOT 演算を実行しました。

コード例:

# Python 3.x
x = 20
print("~20 =", ~x)

出力:

#Python 3.x
~20 = -21

この最後の例では、クラス用の特別な init() メソッドを使用してデータを初期化します。 invert() 関数は、補数に self 属性を再割り当てすることにより、データのビットごとの反転を計算します。

データ 3 を変数 x に割り当てます。 x の補数は res 変数に格納されます。

resを印刷することにより。 data は、出力として -4 を返します。

コード例:

# Python 3.x
class Data:
    def __init__(self, data):
        self.data = data

    def __invert__(self):
        return Data(~self.data)


x = Data(3)
res = ~x
print(res.data)

出力:

#Python 3.x
-4
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python Operator