Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで16進数のビット単位XOR(排他的論理和)を計算する方法

Pythonで16進数のXOR演算を行う基本方法

Pythonでは、^ 演算子を使うことで、任意の整数型の数値に対してビット単位のXOR(排他的論理和)を簡単に計算できます。16進数の場合も特別な処理は不要で、以下のように記述するだけです。

a = 0x12ef
b = 0xabcd
print(hex(a ^ b))

実行結果

0xb922

コードの解説

数値の先頭に付いている 0x は、その数値が16進数表記であることを示しています。Pythonでは 0x を付けることで、リテラルを16進数として扱うことができます。

重要なポイントとして、^ 演算子によるXOR計算は、数値が10進数・16進数・2進数・8進数のいずれの表記であっても問題なく動作します。これは、Pythonが内部的にすべての整数を同じ形式で保持しているためです。表記方法はあくまでソースコード上の書き方の違いにすぎません。

応用例:2進数や8進数との組み合わせ

例えば、2進数と16進数を混在させてXORを取ることも可能です。

a = 0b1010   # 2進数の10
b = 0x0f     # 16進数の15
print(hex(a ^ b))  # 結果: 0x5

このように、hex() 関数を使えば計算結果を16進数の文字列として出力でき、ビット演算のデバッグやフラグ管理などにも便利に活用できます。

  1. Pythonで複素数を扱う方法:基本の書き方とcomplex()関数の使い方を解説

    複素数とは?複素数とは、2つの実数 a と b の組み合わせで表される数であり、一般的に「a+bi」または「a+ib」という形式で書かれます。ここで i は虚数単位と呼ばれ、第2項であることを示すラベルのような役割を果たします。数学的には、虚数単位 i は次の性質を持ちます。i² = -1なお、分野によっては i の代わりに j が使われることもあります(特に電気工学などでは j が標準的です)。Pythonでの複素数の基本的な書き方Pythonでは、虚数部分に接尾辞 j を付けることで、複素数リテラルをそのまま記述できます。変数への代入は以下のように行います。>>> a =

  2. Pythonで文字列と数値を連結する方法をわかりやすく解説

    Pythonで文字列と数値を連結する基本の方法Pythonでは、文字列と数値をそのまま + 演算子で結合することはできません。連結するには、str() 関数を使って数値を文字列型に変換する必要があります。以下は基本的な例です。>>> a = string >>> b = 1 >>> print(a + str(b)) string1このように str(b) によって数値 1 が文字列 1 に変換され、文字列同士として正しく連結されます。Python 2で使えたバッククォート記法についてPython 2では、数値をバッククォート(`)で囲むこ