【问题标题】:How to describe the maths behind this function如何描述这个函数背后的数学
【发布时间】:2013-07-30 11:57:48
【问题描述】:
这是一个十进制到二进制转换器。我需要帮助解释背后的数学是因为我不知道如何解释所有的转变等。
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
【解决方案1】:
循环建立一个代表二进制值的字符串。
str(number % 2) 查找数字的最低位(0 或 1)。
binary = str(number % 2) + binary 将位添加到字符串的左端 binary
number >>=1 现在我们已经完成了删除低位
while number > 0 一直持续到数字为 0
【解决方案2】:
假设您将 56 转换为二进制。
右移1位,56(111000)变成28(011100)
注意:右移运算符使第一个操作数中的位模式右移第二个操作数指定的位数。对于无符号量,移位操作腾出的位用零填充
像这样,变量 number 右移 1 直到大于 1 并且每次都附加 number 除以 2 的余数(始终为 0 或 1)到结果变量,binary
最后,变量 binary 将具有二进制等价