2

文字列を2進整数に変換しようとしています:

string = "0b011" 
i = int(string)

しかし、このコードはを発生させValueErrorます。ただし、次のコードは正常に機能します。

i = int(0b011)

しかし、ここでは、文字列ではなく、バイナリリテラルを渡しました。文字列を変換するにはどうすればよいですか?

4

3 に答える 3

3

このコードを試してください:

string = '0b011'
i = int(string, 2) # value of i is 3

これは、組み込みのプロシージャint()とオプションのbaseパラメータを使用します。これは、変換で使用されるベースを示します。この場合は、ドキュメントから2つです。

baseパラメーターは、変換のベース(デフォルトでは10)を提供し、[2、36]またはゼロの範囲の任意の整数にすることができます。基数がゼロの場合、適切な基数は文字列の内容に基づいて決定されます。解釈は整数リテラルの場合と同じです。

于 2012-05-29T00:41:19.547 に答える
2

2番目のオプションのargument(base)を使用しint()て、文字列が次のbase 2とおりであることを示します。

int(str[,base])

>>> string = "0b011"
>>> int(string,2)
3
于 2012-05-29T00:40:27.420 に答える
2
>>> from ast import literal_eval
>>> literal_eval("0b011")
3
于 2012-05-29T01:04:20.433 に答える