wodeai999 发表于 2021-9-12 10:31:07

2进制

def second(dec):
    teep = []
    while dec:
      yu = dec % 2
      shang = dec // 2
      teep.append(yu)

print(teep)

我想的是将余数不断往teep这个列表里面填,但是实现不了,大佬可以帮我看看嘛

wp231957 发表于 2021-9-12 10:42:23

因为dec没有变化,所以循环无法终止

傻眼貓咪 发表于 2021-9-12 13:30:37

while 會判斷語句後面的表達式是真是假,只要你的 dec 不是 0,就永遠循環下去(因為所有數字都是真,除了 0 是假)
{:5_105:}你的代碼只有 yu,shang 和temp 在做改變,dec一直都沒變啊
參考我的代碼:
def binary(num: int) -> int:
    n = num
    res = ''
    while n > 1:
      if n%2 == 0:
            res = res+'0'
            n = int(n/2)
      else:
            res = res+'1'
            n = int((n-1)/2)
    res = int((res+'1')[::-1])
    return res

print(binary(42)) # 101010
页: [1]
查看完整版本: 2进制