我目前正在制作一个与字节加法相关的python程序,它会提示用户输入2个整数,将它们加在一起,如果它在一个字节的实际大小范围内(0到255),则显示该数字并以8位二进制形式给出相应的值,例如,计算等于1,显示python声明为正确的二进制数。
这是我正在做的任务〜
“程序必须检查输入数据是否允许数据类型和数据值限制(整数值不得超过字节编码整数的实际大小,即基数2或分钟中的最小值00000000和最大值11111111基数10中的0和最大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()
到目前为止,这是我的代码,我可以毫不费力地显示标准的十进制数,但我真的无法让bin(calculatedanswer)
显示它的二进制等价物。我尝试使用我在YouTube上找到的这种方法。
我认为我的主要问题是我对“bin”如何在python上工作缺乏了解,因为这是我第一次使用它。
我把星号放在了我遇到麻烦的地方。
答案 0 :(得分:1)
您必须打印值:
>>> 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)
打印它的一个选项是切掉结果的0b
部分,我假设当你说你遇到bin
函数问题时你的意思。
试试这个:
print(bin(calculatedanswer)[2:]))