0

这是一个十进制到二进制转换器。我需要帮助解释背后的数学是因为我不知道如何解释所有的转变等。

number = int(raw_input("Enter the Number:"))
binary = ''
while number > 0:
    binary = str(number % 2) + binary 
    number >>=1
print(binary)    
4

2 回答 2

0

循环建立一个代表二进制值的字符串。

str(number % 2)查找数字的最低位(0 或 1)。

binary = str(number % 2) + binary将位添加到字符串binary的左端

number >>=1删除低位,因为我们已经完成了它

而 number > 0一直持续到数字为 0

于 2013-07-30T11:55:08.087 回答
0

假设您要将 56 转换为二进制。

右移 1 位时,56(111000)变为 28(011100)

注意:右移运算符会使第一个操作数中的位模式右移第二个操作数指定的位数。对于无符号量,移位操作腾出的位用零填充

像这样,变量number右移 1 直到大于 1 并且每次将 number 除以 2 的余数(这将始终为 0 或 1)附加到结果变量binary

最后,变量binary将具有二进制等价物

于 2013-07-30T11:55:56.653 回答