第二个选项不打印二进制文件。我们的目标是输入一个十进制数,输出一个二进制数。这是代码的一部分:
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个错误
-
你必须使用
int()
而不是' float() -
您可以使用
//
代替/
来获得整数结果 -
你必须在原来的
decimal
上计算reminder
-所以你必须在计算新的decimal
之前计算它 -
你必须把二进制数字颠倒
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