【发布时间】:2013-09-06 09:09:24
【问题描述】:
我需要编写一个程序,要求用户输入一个 16 位二进制数,然后将其转换为十进制。我只被允许使用 if-else 语句(没有 for/while 等......并且没有函数)。
我的问题不在于转换本身。
我的问题是将用户的号码表示为 16 位数字,一旦他输入了一个少于 16 位的数字。例如,如果用户输入“1111”,我需要将其转换为“0000 0000 0000 1111”。
我试过了:
A=int(input("Please enter a 16-bit decimal number:"))
B=0000000000000000
C=A or B
print (C)
这给了我 A 中的原始数字(我不太明白为什么)。
我还尝试将用户的输入视为字符串,但据我了解,Python 开始从左到右对字符进行编号,因此在 A=1111 的情况下,我只有 A[0]-A[3 ] 所以我有点坚持。
我知道我可以使用一些函数,但是作业是只使用我们在课堂上学到的主题,基本上只有 if-else 语句(和赋值语句)。
谢谢。 尤尔
【问题讨论】:
-
C=A or Bor is logicalornot bitwise, and Logicaland,orPython中的运算符返回操作数的值而不是布尔值True,False。 -
您是否在寻找
|和&?并不是说它们是必需的,因为您已经使用int(),您需要做的就是添加, 2).. :-P -
是的,我在找 | .
-
为什么要添加 ,2) ?它有什么作用?
标签: python if-statement numbers decimal