我需要创建一个程序,以将Base 10的数字转换为Base 2。
接下来是代码,即使没有错误,它也无法按预期运行:
E = input('Please enter a number')
Eint= int(E)
for N in range(100,0):
while 2**N > Eint:
N = N-1
print(0)
if B**N <= Eint:
Eint = Eint - 2**N
print(1)
Print('finished')
运行时,它将询问我电话号码,仅此而已,谢谢您的帮助。
答案 0 :(得分:0)
通过快速检查,range(100,0)
,B
和Print()
是这里的三个元凶!如果要传递0到99之间的数字,则需要range(100)
。现在,B是什么?打印应使用小写字母:print
。
修复这些语法错误后,让我们尝试重新访问该程序并了解它应该做什么。玩得开心:-)
编辑以修正问题中的代码:
E = input('Please enter a number: ')
Eint = int(E)
for N in range(8,-1,-1):
if 2**N > Eint:
print(0, end='')
else:
Eint = Eint - 2**N
print(1, end='')
print()
print('finished')
请注意,Python是一种使用缩进表示代码块的语言。此代码会将十进制转换为二进制。现在,请注意以8开头的范围会提示您有关代码可以转换的数字的上限。因此,必须在第二条语句之后添加if条件,以确保我们不尝试转换太大的数字。享受吧!
答案 1 :(得分:0)
如果它也有助于检查我的解决方案。因为我想您不想在单独的行中看到结果,所以我创建了一个列表供您在一行中查看结果。
E = int(input('Please enter a number\n'))
Eint = E
base_two=[]
while E > 0:
a = int(float(E%2))
base_two.append(a)
E = (E-a)/2
base_two.append(0)
string = ""
for j in base_two[::-1]:
string = string+str(j)
print("Binary for", Eint, "is", string)
print('finished')
我有点迟了:)