文字列を2進整数に変換しようとしています:
string = "0b011"
i = int(string)
しかし、このコードはを発生させValueError
ます。ただし、次のコードは正常に機能します。
i = int(0b011)
しかし、ここでは、文字列ではなく、バイナリリテラルを渡しました。文字列を変換するにはどうすればよいですか?
文字列を2進整数に変換しようとしています:
string = "0b011"
i = int(string)
しかし、このコードはを発生させValueError
ます。ただし、次のコードは正常に機能します。
i = int(0b011)
しかし、ここでは、文字列ではなく、バイナリリテラルを渡しました。文字列を変換するにはどうすればよいですか?
このコードを試してください:
string = '0b011'
i = int(string, 2) # value of i is 3
これは、組み込みのプロシージャint()とオプションのbaseパラメータを使用します。これは、変換で使用されるベースを示します。この場合は、ドキュメントから2つです。
baseパラメーターは、変換のベース(デフォルトでは10)を提供し、[2、36]またはゼロの範囲の任意の整数にすることができます。基数がゼロの場合、適切な基数は文字列の内容に基づいて決定されます。解釈は整数リテラルの場合と同じです。
2番目のオプションのargument(base)を使用しint()
て、文字列が次のbase 2
とおりであることを示します。
int(str[,base])
>>> string = "0b011"
>>> int(string,2)
3
>>> from ast import literal_eval
>>> literal_eval("0b011")
3