如何描述这个函数背后的数学

问题描述 投票:0回答:2

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

number = int(raw_input("Enter the Number:"))
binary = ''
while number > 0:
    binary = str(number % 2) + binary 
    number >>=1
print(binary)    
python binary decimal converter helper
2个回答
0
投票

循环构建一个表示二进制值的字符串。

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

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

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

数字> 0继续,直到数字为0


0
投票

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

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

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

像这样,变量,数字右移1,直到它大于1,每次,数字的余数除以2(这将总是0或1)附加到结果变量,二进制

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

© www.soinside.com 2019 - 2024. All rights reserved.