2016-04-02 7 views
0

Ich habe einen Numeric Translator erstellt, wo ich Integer in Binär konvertieren muss. Als ich versuchte, Integer 12 zu konvertieren. Es gibt mir einen Wert 0 0 0 0 0 1 0 0 anstelle von 0 0 0 0 1 1 0 0.Konvertierung von Integer in binäre Rückgabe falsche Werte

Code:

number = int(input("Enter a integer between 255 and 0: ")) 
    if (number > 255) or (number < 0): 
     print("Please input less than 255!!!") 
    else: 
     a = False 

     for myCounter in range (8): 

      if (number % 2 == 1):#if remainder is equal to 1 
       myResult = ' 1 ' + myResult#add '1' character to the string 

      else: 
       (number % 2 == 0)#if input has no remainder 
       myResult = ' 0 ' + myResult#add '0' character to the string 

      number = number/2 

     print("Binary equivalent is: %s" %myResult) 

Screenshot

Wie kann ich die 0.5-1 mit ROUND_HALF_UP abrunden? Ausgabe unten.

Output

Jede mögliche Hilfe würde geschätzt Dank!

+0

'Math.ceil ersetzt (0,5)' -> '1.0' ist das, was Sie wollen? (oder addiere einfach 0.5 und trenne: 'int (n + 0.5)') –

+2

versuche 'number = number // 2' –

+0

Bitte benutze keine Klammern innerhalb' if' –

Antwort

0

Der Code funktioniert in Python 2.7 gut. Für Python 3.x versuchen number = number/2 zu number=number//2

number = 12 
a = False 
myResult = '' 
for myCounter in range (8): 

    if (number % 2 == 1):#if remainder is equal to 1 
     myResult = ' 1 ' + myResult#add '1' character to the string 

    else: 
     (number % 2 == 0)#if input has no remainder 
     myResult = ' 0 ' + myResult#add '0' character to the string 

    number = number // 2 

print("Binary equivalent is: %s" %myResult) 
+0

Danke das hat mir geholfen! Warum sollte ich "Floor Division" anstelle von "Division Symbol" verwenden? – Francisunoxx

+0

@MiaLegaspi yep :) –

+1

Für diejenigen, die mehr geneigt sind, bitweise Operationen zu verwenden, 'myResult = str (Zahl & 1) + myResult; Nummer >> = 1 'würde das Gleiche tun. – Reti43

Verwandte Themen