好的,这是我在这里发的第一篇帖子,如果问题无法解决,请原谅和忽略;
背景: 我正在学习计算机科学160课程。自高中以来,我没有上过任何与计算机相关的课程,所以加入这个班对我来说是一个很大的转变。所有东西都看起来非常先进。我们一直在使用Python,并且每周都要写一个程序。
我已经研究了一个星期,甚至开始都很困难。 提示是读取只包含1和0的整数,逐位处理二进制数字并报告十进制等价物。现在,我从一位同学那里得到了一些提示,至少让我朝着一个方向前进。
设置几个计数器; 使用%运算符检查数字除以2的余数,并切掉最后一个数字(向右)以继续并处理下一个数字。
我非常难以理解应该在二进制数字本身上使用哪个公式将数字转换为十进制。
setbitval = 0
counter = 0
user = int(input("enter a binary value. "))
if user % 2 == 1:
user = (user/10) - .1
setbitval += 1
这是我目前为止的所有内容...我的思维正在阻碍我。我已经搜索了很多,甚至通过这些论坛。
非常感谢任何信息或想法,
T
编辑:好吧,各位的帮助都非常有用,但我有一个问题,就是如何检查用户输入是否不是二进制数。
for i in reversed(bits):
decimal += 2**counter * int(i)
counter += 1
这是这里的某个人给我的公式,我一直在尝试不同的迭代方式,例如 "for i in bits: if i in bits: != 0 or 1" 和 "if i in bits: >= 1 or <=0"。
有什么想法吗?
DecValue= int(input("enter a binary value. "), 2)
吗? - NendoTaka