将计算出的十进制数转换成8位二进制

2024-10-01 09:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在制作一个与字节加法器相关的python程序,它将提示用户输入2个整数,将它们相加,如果在一个字节的实际大小范围内(0到255),则显示该数字,并以8位二进制形式给出相应的值,例如,计算等于1,显示python声明为正确的二进制数。在

~

“程序必须检查输入数据的允许数据类型和数据值限制(整数的值不得超过字节编码整数的实际大小,即最小00000000和max 11111111111(以2为基数)或min0和max 255(以基数10表示正整数)”输入,并转换为二进制在

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上是如何工作的,因为这确实是我第一次使用它。在

我在我遇到麻烦的那条线周围加了星号。在


Tags: andthe数据answer程序add字节bin
2条回答

打印它的一个选择是将结果中的0b部分切掉,我假设这就是您所说的bin函数有问题的意思。在

试试这个:

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

您必须打印值:

>>> 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

相关问题 更多 >