我编写了一些代码,它采用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)
答案 0 :(得分:3)
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
参考: