0
對於作業,我們被要求創建一個函數,該函數採用二進制輸入,將值遞增1,然後顯示新數字的二進制值。輸出值必須是8位字符串(8個字符長)。添加前導0直到長度爲8個字符爲止
以下代碼返回正確的值,但我不知道如何將前導零添加到該值。
def numToBinary(n):
if n == 0:
return ''
elif isOdd(n):
return numToBinary(n // 2) + '1'
else:
return numToBinary(n // 2) + '0'
def binaryToNum(s):
if s == '':
return 0
elif int(s[0]) == 0:
return 0 + binaryToNum(s[1:])
elif int(s[0]) == 1:
return 2**(len(s) - 1) + binaryToNum(s[1:])
def increment(s):
binToNum = binaryToNum(s) + 1
numToBin = numToBinary(binToNum)
return numToBin
給出解決這個問題就是個暗示:「()考慮你怎樣才能使用 功能LEN和字符串乘法*,以確保輸出有足夠的前導零」
請問有人能指點我正確的方向嗎?謝謝!
注:一個例子輸出應該是:
>>> increment('00000001')
'00000010'
'string.zfill(8)'將投入足夠的零在'string'的開始,使之8個字符。 – zondo
@zondo將其發佈爲答案 – Barmar
@Barmar:好的。完成。 – zondo