将分子和分母的分数转换为二进制

时间:2018-10-23 23:30:54

标签: python binary

几天来一直在寻求帮助,但我认为我的问题没有任何答案。我确信它是基本的,但我无法使其正常工作。

我正在尝试创建一个将分数转换为二进制表示形式的函数。我基于此工作在这里: 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],所以我想我很接近。

1 个答案:

答案 0 :(得分:0)

p = p*2 - q情况下,您误译了步骤3:只需使用=concatenate(a2, a1, a3)