Pythonでバイナリ文字列を整数に変換する方法


方法1: int関数を使用する方法

binary_string = '1101'
decimal_number = int(binary_string, 2)
print(decimal_number)

出力:

13

上記のコードでは、int関数を使用してbinary_stringを整数に変換しています。2番目の引数として、基数(ここでは2)を指定しています。

方法2: bin関数とeval関数を使用する方法

binary_string = '1101'
decimal_number = eval('0b' + binary_string)
print(decimal_number)

出力:

13

上記のコードでは、'0b' + binary_stringを評価するためにeval関数を使用しています。'0b'はPythonのバイナリ表記を示すプレフィックスです。

方法3: ビットシフト演算子を使用する方法

binary_string = '1101'
decimal_number = 0
for digit in binary_string:
    decimal_number = (decimal_number << 1) | int(digit)
print(decimal_number)

出力:

13

上記のコードでは、ビットシフト演算子<<を使用して、バイナリ文字列を整数に変換しています。各桁の値を取得して、それを左シフトし、最後にOR演算子|を使用してビットを結合します。

これらの方法を使用すると、Pythonでバイナリ文字列を整数に簡単に変換することができます。どの方法を選択するかは、コードの読みやすさやパフォーマンスの要件によって異なります。