Pythonで2つのバイナリ文字列をXORする方法について説明します。この記事では、Pythonのビット単位のXOR演算子を使用して、2つのバイナリ文字列をXORする方法を示します。
バイナリ文字列のXOR
Pythonでは、2つのバイナリ文字列をXORするための直感的で効率的な方法が提供されています。以下に、その基本的な手順を示します。
def xor_binary_strings(a, b):
return '{0:b}'.format(int(a, 2) ^ int(b, 2))
この関数は、2つのバイナリ文字列a
とb
を引数として受け取り、それらを整数に変換します。次に、これらの整数に対してXOR演算を行い、結果をバイナリ文字列に戻します。
同じ長さのバイナリ文字列のXOR
上記の関数は、2つのバイナリ文字列が同じ長さである場合に最適です。しかし、異なる長さのバイナリ文字列をXORする場合は、以下のように修正することが推奨されます。
def xor_binary_strings(a, b):
return '{0:0{1}b}'.format(int(a, 2) ^ int(b, 2), len(a))
この修正版の関数では、結果のバイナリ文字列がa
の長さと同じになるように、ゼロでパディングされます。
まとめ
Pythonでは、ビット単位のXOR演算子と組み込みのformat
関数を使用して、簡単に2つのバイナリ文字列をXORすることができます。この記事で紹介した関数は、バイナリ文字列のXORを効率的に計算するための基本的な方法を提供します。これらの関数は、さまざまな長さのバイナリ文字列に対応できるように設計されています。
参考文献
- Stack Overflow, “how to xor binary with python”
- Stack Overflow, “How to XOR two binary strings in python”
- GeeksforGeeks, “XOR of two Binary Strings”