如何通过重复除以 2 将二进制转换为二进制?
how to convert denary to binary by repeatedly dividing by 2?
我遇到了一个问题,我必须编写一个函数,使用重复除以二算法将二进制数转换为二进制数。步骤包括:
-要转换的数除以2。
-除法的余数是下一个二进制数字。数字被添加到序列的前面。
-结果被截断,以便下一次除以二的输入始终是整数。
-算法一直持续到结果为0。
请点击下面的 link 查看输出应该是什么:https://i.stack.imgur.com/pifUO.png
到目前为止,这是我的代码:
def dentobi(user):
denary = user
divide = user / 2
remainder = user % 2
binary = remainder
while user != 0:
print("Denary:", denary)
print("Divide by 2:", divide)
print("Remainder:", remainder)
print("Binary:", binary)
result = str(binary) + str(remainder)
print(result)
user = int(input("Please enter a number: "))
dentobi(user)
当数字没有余数时我的输出是:
请输入一个数字:20
第纳尔:20
除以 2:10.0
余数:0
二进制:0
当数字确实有余数时输出:
请输入一个数字:20
第纳尔:20
除以 2:10.0
余数:0
二进制:0
这是我想要发生的事情的一部分,但是我需要它一遍又一遍地迭代,直到实际值达到零。
我每次都需要一些帮助来编写余数以放在前面,感谢您的建议。
有很多不同的方法可以做到这一点。这是一个:
def dentobi(n):
result = ''
while n > 0:
result = str(n % 2) + result
n //= 2
return result or '0'
print(dentobi(26))
输出:
11010
注:
这将不适用于负值
我遇到了一个问题,我必须编写一个函数,使用重复除以二算法将二进制数转换为二进制数。步骤包括:
-要转换的数除以2。
-除法的余数是下一个二进制数字。数字被添加到序列的前面。
-结果被截断,以便下一次除以二的输入始终是整数。
-算法一直持续到结果为0。
请点击下面的 link 查看输出应该是什么:https://i.stack.imgur.com/pifUO.png
到目前为止,这是我的代码:
def dentobi(user):
denary = user
divide = user / 2
remainder = user % 2
binary = remainder
while user != 0:
print("Denary:", denary)
print("Divide by 2:", divide)
print("Remainder:", remainder)
print("Binary:", binary)
result = str(binary) + str(remainder)
print(result)
user = int(input("Please enter a number: "))
dentobi(user)
当数字没有余数时我的输出是:
请输入一个数字:20 第纳尔:20 除以 2:10.0 余数:0 二进制:0 当数字确实有余数时输出:
请输入一个数字:20 第纳尔:20 除以 2:10.0 余数:0 二进制:0
这是我想要发生的事情的一部分,但是我需要它一遍又一遍地迭代,直到实际值达到零。
我每次都需要一些帮助来编写余数以放在前面,感谢您的建议。
有很多不同的方法可以做到这一点。这是一个:
def dentobi(n):
result = ''
while n > 0:
result = str(n % 2) + result
n //= 2
return result or '0'
print(dentobi(26))
输出:
11010
注:
这将不适用于负值