6

整数を2進数に変換しようとしています。これが私の仕事です。バイナリを表示するリストを作成する方法がわかりません。

num_str = input("Please give me a integer: ")

num_int = int(num_str)

while num_int > 0:

    if num_int % 2 == 0:
        num_int = int(num_int / 2)
        num_remainder = 1
        print("The remainder is:", 0)
        continue

    elif num_int % 2 == 1:
        num_int = int(num_int / 2)
        num_remainder = 1
        print("The remainder is:", 1)
        continue

残りを一緒にする方法は?

4

6 に答える 6

17

組み込みbin関数を知っていますか?

>>> bin(100)
'0b1100100'
>>> bin(1)
'0b1'
>>> bin(0)
'0b0'
于 2013-01-30T03:52:43.933 に答える
4

あなたは正しい道を進んでいます。数字を画面に出力するだけでなく、変数のどこかに保存する必要があります。

num_str = input("Please give me a integer: ")

num_int = int(num_str)

num_bin_reversed = ''

while num_int > 0:

    if num_int % 2 == 0:
        num_int = int(num_int / 2)
        num_remainder = 1
        print("The remainder is:", 0)
        num_bin_reversed += '0'

    elif num_int % 2 == 1:
        num_int = int(num_int / 2)
        num_remainder = 1
        print("The remainder is:", 1)
        num_bin_reversed += '1'

num_bin = num_bin_reversed[::-1]
if int(num_str) > 0:
  assert '0b' + num_bin == bin(int(num_str))

それでは、負の数と 0 でも機能するように修正してみてください。

于 2013-01-30T04:04:07.627 に答える
1

余りを数字として文字列に格納できます。10 進数から 2 進数に変換できる関数の 1 つを次に示します。

def dec2bin(d_num):
    assert d_num >= 0, "cannot convert negative number to binary"
    if d_num == 0:
        return '0'
    b_num = ""
    while d_num > 0:
        b_num = str(d_num%2) + b_num
        d_num = d_num//2
    return b_num
于 2016-09-20T04:50:03.103 に答える
0
#This is the same code as the one above it's just without comments
#This program takes a number from the user and turns it into an 8bit binary string

integer_number = int(input('Please input an integer'))

result = ''  

for x in range(8):

    r = integer_number % 2 
    integer_number = integer_number//2
    result += str(r)

result = result[::-1]

print(result)
于 2013-11-15T23:02:01.697 に答える