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

Pythonでのバイナリリストから整数へ


さまざまなアプローチを使用して、Pythonで2進数を表す0と1のリストを10進数に変換できます。以下の例では、int()メソッドとビット単位の左シフト演算子を使用しています。

int()の使用

int() メソッドは2つの引数を取り、以下の構文に従って入力のベースを変更します。

int(x, base=10)
Return an integer object constructed from a number or string x.

次の例では、int()メソッドを使用してリストの各要素を文字列として取得し、それらを結合して、基数10の整数に変換される最終的な文字列を形成します。

List = [0, 1, 0, 1, 0, 1]
print ("The List is : " + str(List))
# binary list to integer conversion
result = int("".join(str(i) for i in List),2)
# result
print ("The value is : " + str(result))

上記のコードを実行すると、次の結果が得られます-

The List is : [1, 1, 0, 1, 0, 1]
The value is : 53

ビット単位の左シフト演算子の使用

ビット単位の左シフト演算子は、バイナリ形式にゼロを追加した後、指定された数字のリストを整数に変換します。次に、ビット単位またはを使用してこの結果に追加します。 forループを使用して、リスト内の各数字を繰り返し処理します。

List = [1, 0, 0, 1, 1, 0]
print ("The values in list is : " + str(List))

# binary list to integer conversion
result = 0
for digits in List:
result = (result << 1) | digits

# result
print ("The value is : " + str(result))

上記のコードを実行すると、次の結果が得られます-

The values in list is : [1, 0, 0, 1, 1, 0]
The value is : 38

  1. Pythonでのローマ字から整数へ

    ローマ字のリテラルがあるとします。それらを整数に変換する必要があります。私たちが知っているように、ローマ数字は以下のようにいくつかの異なる記号で表されます- 数字 値 私 1 V 5 X 10 L 50 C 100 D 500 M 1000 ローマ数字をよく見ると、数字が「II」であると仮定しているようなものです。つまり、これは2であり、2つの「I」が足し合わされています。 XIIの場合は12なので、実際にはX + II =10 + 2 =12です。4のローマ数字はIIIIではなく、IVです。これは

  2. Pythonのbin()

    bin()関数は、10進数を2進数に変換します。変換するパラメータとして正または負の整数を使用できます。 構文 以下は関数の構文です。 bin(n) Parameters : an integer to convert Return Value : A binary string of an integer or int object. Exceptions : Raises TypeError when a float value is sent as argument. 次の例では、正と負の整数を2進数に変換します。結果には接頭辞0bが付いており、数値が2進表現であることを示しています