2017-10-28 1 views
0

Kann mir bitte jemand Anweisungen geben, wie Sie das Programm mit diesem Algorithmus schreiben? Um Binär Ganzzahl in Dezimal zu konvertieren, beginnen Sie von links. Nimm deine aktuelle Summe, multipliziere sie mit zwei und füge die aktuelle Zahl hinzu. Fahren Sie fort, bis keine Ziffern mehr übrig sind.Konvertieren binäre Ganzzahl in Dezimal mit Balg Algorithmus

Zuerst müssen die Eingabe-Binärzahl als String dann eine nach der anderen Ziffern Binärzahl wählen

num=input("Enter the binary integer Number: ") 
    num=str(num) 
    decimal='' 
    rem=0 
    i=0 
    i=int(i) 

    dig=num[i] 
    dig=int(dig) 
    rem=(rem*2)+dig 
    i=i+1 

    dig=num[i] 
    dig=int(dig) 
    rem=(rem*2)+dig 
    i=i+1 

    dig=num[i] 
    dig=int(dig) 
    rem=(rem*2)+dig 
    i=i+1 

    dig=num[i] 
    dig=int(dig) 
    rem=(rem*2)+dig 
    i=i+1 

    decimal=int(rem) 
    print(decimal) 

Dieser Code nur 4 Ziffern von Binärzahlen berechnen. Wie kann ich in diesem Code eine While-Schleife hinzufügen?

+0

fügen Sie bitte Ihren Beispielcode hinzu. oder was du bisher versucht hast. –

+0

Dieser Code berechnet nur 8-Bit-Binärzahlen (4-stellig) ich kann ich eine while-Schleife für diesen Code verwenden? –

Antwort

0

können Sie verwenden, um die int() Funktion:

binary_string = input('Please input a binary number: ') 
print(int(binary_string, 2)) 

Ein Motto, nur weil es möglich ist:

print(int(input('Please input a binary number: '), 2)) 

Aber wenn Sie wirklich diese mit einer Schleife tun möchten, können Sie tun :

binary_string = input('Please input a binary number: ') 
result = 0 
multiplier = 1 
for digit in binary_string[::-1]: 
    result += int(digit) * multiplier 
    multiplier *= 2 
print(result) 
1

Ja, können Sie das in einer Schleife setzen:

Beachten Sie, dass input in Python 3 bereits einen Wert vom Typ string zurückgibt, so dass Sie ihn nicht mit str() konvertieren müssen.