2017-12-06 3 views
0

現在、バイト加算器に関連するPythonプログラムを作成中です。ユーザーに2つの整数を入力し、それらを一緒に追加し、実際のサイズバイト(0〜255)はその数を表示し、対応する値を8ビットバイナリ形式で与えます。例えば、計算は1に等しく、Pythonが正しいものとして宣言したバイナリ数を表示します。計算された10進数を8ビットのバイナリに変換する

これは私がやっている仕事〜

「プログラムは(データ型許可およびデータ値の制限のための入力データをチェックしなければならない整数の値は、バイト・の実際のサイズを超えてはならないですコード化された整数、正の整数のベース10内すなわち分00000000とmax 11111111ベース2または最小0とmax 255は」

def add(): 
    Num1 = int(input("Input the first number between 0 and 255, the calculated answer must not be above 255: ")) 
    Num2 = int(input("Input the second number between 0 and 255, the calculated answer must not be above 255: ")) 

    calculatedanswer = Num1+Num2 

    if calculatedanswer >= 0 and calculatedanswer <=255: 
     print("The answer in decimal is" ,calculatedanswer,) 

     **bin(calculatedanswer)** 

    elif calculatedanswer < 0 and calculatedanswer >255: 
     print("Please ensure the added numbers are above 0 and below 255") 
     add() 

バイナリ

への変換との両方のバイナリと10進形式で入力これは、これまでの私のコードです標準の10進数を表示するのに問題はありませんが、実際にはバイナリeを表示するにはbin(calculatedanswer)を取得できませんそれの二価。私はYouTubeで見つけたこの方法を使ってみました。

ここでの主な問題は、私が実際に初めて使用しているように、「ビン」がどのようにPython上で動作するかの理解が不足していると思います。

私は問題を抱えている行の周りにアスタリスクを置いています。あなたは印刷に値を持っているん

+0

実際の出力対期待してあなたの条件に応じて、あなたがすでに、あなたはあなたの問題を引き起こして正確なコードが表示されるはずアンサープリント(STR(calculatedanswer)) – noone392

+0

を持っています。私たちは、「トラブル」が何を意味するのかを推測しています。 –

答えて

1

:それは私が想定しており、結果の0b部分を切り取ることであろう印刷するための

>>> print(bin(160)) # This version gives the 0b prefix for binary numbers. 
0b10100000 
>>> print(format(160,'08b')) # This specifies leading 0, 8 digits, binary. 
10100000 
>>> print('{:08b}'.format(160)) # Another way to format. 
10100000 
>>> print(f'{160:08b}') # Python 3.6+ new f-string format. 
10100000 
1

1つのオプションは、あなたがいると言うとき、あなたは何を意味するかですbin機能に問題があります。

これを試してみてください:

print(bin(calculatedanswer)[2:]))

関連する問題