2016-04-02 7 views
0

Integerを2進数に変換する必要があるNumeric Translatorを作成しました。私は整数12を変換しようとしました。それは0 0 0 0 1 1 0 0の代わりに私に値0 0 0 0 0 1 0 0を与えます。整数を2進数に変換すると、間違った値が返される

コード:

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

私はROUND_HALF_UPを使用して10.5を締めくくることができますどのように?下の出力。

Output

すべてのヘルプは、感謝感謝です!

+0

'math.ceil(0.5)にnumber = number/2を交換してみ' - > '1.0'は何をしたいということでしょうか? (または0.5を加え、切り捨てる: 'int(n + 0.5)') –

+2

'number = number // 2' –

+0

' if'の中に括弧を入れないでください。 –

答えて

0

コードはPython 2.7で正常に動作します。 Python 3.xについて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

ありがとうございました!なぜ私は 'Division Symbol'の代わりに' Floor Division'を使うべきですか? – Francisunoxx

+0

@MiaLegaspi yep :) –

+1

ビット演算を使用する傾向がある人には、 'myResult = str(number&1)+ myResult; number >> = 1は同じことをします。 – Reti43

関連する問題