第二个选项不打印二进制文件.我们的目标是输入一个十进制数,输出一个二进制数



第二个选项不打印二进制文件。我们的目标是输入一个十进制数,输出一个二进制数。这是代码的一部分:

if the_option == 2:
decimal_string = input("DECIMAL-STR> ")
decimal = float(decimal_string)
binary_string = ""
while decimal > 0 and isinstance(decimal, int):
decimal = decimal / 2
remainder = decimal % 2
math.trunc(remainder)
binary_string = binary_string + str(remainder)
print("Decimal " + decimal_string + " is Binary " + binary_string)

我发现了4个错误

  1. 你必须使用int()而不是' float()

  2. 您可以使用//代替/来获得整数结果

  3. 你必须在原来的decimal上计算reminder-所以你必须在计算新的decimal之前计算它

  4. 你必须把二进制数字颠倒str(remainder) + binary_string而不是binary_string + str(remainder)

#decimal_string = input("DECIMAL-STR> ")
for decimal_string in ['16', '7', '128']:
decimal = int(decimal_string)  # use `int()` instead of `float()`
binary_string = ""

while decimal > 0:
remainder = decimal % 2  # calculate on original `decimal`
decimal = decimal // 2   # use `//` to get integer 
binary_string = str(remainder) + binary_string  # reverse order

print("Decimal " + decimal_string + " is Binary " + binary_string)

结果:

Decimal 16 is Binary 10000
Decimal 7 is Binary 111
Decimal 128 is Binary 10000000