我有一個非常具體的問題,關於如何通過Python將整數轉換爲二進制,而是隻使用mod(%)和除(/)函數。在Python中將整數轉換爲二進制
到目前爲止,我已經成功地創建了實際的函數並循環了自身,但函數似乎永遠循環並增加了一個0和1的數字,儘管成功地進行了轉換。
例如,輸入4,輸出[0,0,1,0,1]。正如你所看到的,它已經成功獲得[0,0,1],它是二進制的4,但是在末尾增加了一個0和一個1。
我認爲這是與我參考和傳遞參數的方式有關,但很樂意接受一些幫助。
num = int(input("Enter the Number"))
def func(num)
if num == 1:
alist.append(1)
return num
while num != 1:
modnum = int(num%2)
num = int(num/2)
if modnum == 0:
alist.append(0)
print(alist)
elif modnum == 1:
alist.append(1)
print(alist)
func(num)
alist = []
func(num)
print(alist)
print (alist[::-1])
遞歸*和*循環快速實現這一點?似乎你需要選擇一種方式或另一種方式。 –
你能解釋一下嗎?我知道我在循環中使用遞歸,但在這種情況下,它是否重要?我很新,所以任何幫助都會很樂意。 – Nawlidge
爲什麼不使用'list(「{0:b}」.format(num))'來獲取列表? –