如何使用 python 中的重复除法将十进制转换为二进制

how to convert decimal to binary by using repeated division in python

python如何用重复除法将十进制转为二进制?

我知道我必须使用 while 循环,并使用模数符号和其他 {%} 和 {//} 来做到这一点......但我需要一些例子来理解它是如何做到的我完全可以理解。 纠正我,如果我错了:

number = int(input("Enter a numberto convert into binary: "))

result = "" 
while number != 0:
    remainder = number % 2 # gives the exact remainder
    times = number // 2
    result = str(remainder) + result
    print("The binary representation is", result)
    break

谢谢

在没有任何条件的情况下制作 "break",使循环无用,因此无论如何代码只执行一次。

-

如果不需要保留原来的号码,可以随时更改"number"。

如果您确实需要保留原始数字,您可以创建一个不同的变量,例如 "times"。

你好像把这两种情况混在一起了。

-

如果要打印所有步骤,打印将在循环内,因此会打印多次。

如果只想打印最终结果,则打印在循环外。

while number != 0:
    remainder = number % 2  # gives the exact remainder
    number = number // 2
    result = str(remainder) + result
print("The binary representation is", result)

-

连接线:

将打印放在循环中可能有助于您了解它的工作原理。

我们可以举个例子:

结果中的值可能是“11010”(带引号的字符串)

余数中的值可能为 0(整数,无引号)

str(remainder) 将余数变成字符串 = "0" 而不是 0

所以当我们看赋值语句时:

result = str(remainder) + result

首先计算赋值运算符 = 的右侧。

=的右边是

str(remainder) + result

正如我们上面所说的,它的值是:

"0" + "11010"

这是字符串连接。它只是将一根绳子放在另一根绳子的末端。结果是:

"0     11010"

"011010"

这是赋值语句右侧计算的值。

result = "011010"

这就是结果的值。

B_Number = 0
cnt = 0
while (N != 0):
    rem = N % 2
    c = pow(10, cnt) 
    B_Number += rem * c 
    N //= 2
    
    # Count used to store exponent value 
    cnt += 1

return B_Number