1

重複の可能性:
組み込みのbin関数を使用せずに整数を2進数に変換する

この関数は、10進数の数値をパラメーターとして受け取り、ビットのリストとして2進数で表された同じ値を表すリストを返す必要があります。ここで、リストの最初の要素は最上位(左端)のビットです。

convert_10_to_2(11)戻る必要があります[1, 0, 1, 1]

二変数関数や外部関数は使えないので、もっと複雑な方法でやらなければなりません。

b = ''
while num > 0:
    b = str(num % 2) + b
    num >>= 1
return (b)

さて、私は最終的にコードを立ち上げました、わかりました'1011'、しかし私は必要です[1,0,1,1]、私は実際にはやなどの関数を使用することはできませbin(x)binary_list。それがこの質問を長い間取っているものです。

4

3 に答える 3

1

リストを初期化してから、for ループを使用して文字列を反復処理し、反復ごとに値をリストに追加することができます。

binary_string = convert_10_to_2(11)

binary_list = []

for character in binary_string:
    binary_list.append(int(character))
于 2012-11-23T05:26:06.663 に答える
0

bin(X)、xは、関数がバイナリ文字列を返す整数です。

詳細@pythonビルドイン関数

于 2012-11-23T05:31:59.900 に答える
0

これは、Python2.xと3.xの両方で機能します。

list(map(int, '{:b}'.format(11)))

11必要に応じて、他の番号に置き換えてください。listPython 3.xのサポートが必要ない場合は、囲んでいる呼び出しを削除します。本当に必要な場合は、関数で囲みます。

于 2012-11-23T05:49:24.993 に答える