我编写了一些代码,它以10为基数,并将其转换为不同的基数。while循环的第一次迭代生成一个整数。所有后续的迭代都会产生浮点数。为什么?它正在产生正确的答案,但作为浮点。知道为什么吗?
num = 128
abase = 2
tlist = []
while num > 0:
tcr = num%abase
tlist.append(tcr)
num -= tcr
num = num / abase
print(tlist)
tlist = tlist[::-1]
temp = 0
for item in tlist:
temp *= 10
temp += item
temp = str(temp)
print(temp)发布于 2017-09-12 05:14:04
X // y(泛指)商x和y
这是因为num = num / abase除法操作符。将其改为:num = num // abase
更新代码:
def test():
num = 128
abase = 2
tlist = []
while num > 0:
tcr = num%abase
tlist.append(tcr)
num -= tcr
num = num // abase
print(tlist)
tlist = tlist[::-1]
temp = 0
for item in tlist:
temp *= 10
temp += item
temp = str(temp)
print(temp)
test()输出:
[0, 0, 0, 0, 0, 0, 0, 1]
10000000参考资料:
https://stackoverflow.com/questions/46168299
复制相似问题