几天来一直在寻求帮助,但我认为我的问题没有任何答案。我确信它是基本的,但我无法使其正常工作。
我正在尝试创建一个将分数转换为二进制表示形式的函数。我基于此工作在这里: How do you convert a fraction to binary?
def fraction_to_binary(p,q):
binlist = []
n = 1
while p >0:
binlist.append(p*2//q)
if p*2//q == 0:
p *=2
n +=1
else:
p = p - (p*2//q)*2**n
n +=1
return binlist
对于我的示例,我尝试将11/64转换为二进制。我的结果:
fraction_to_binary(11,64)
[0, 0, 1, 1, 0, 1]
实际答案是[0, 0, 1, 0, 1, 1]
,所以我想我很接近。
答案 0 :(得分:0)
在p = p*2 - q
情况下,您误译了步骤3:只需使用=concatenate(a2, a1, a3)
。