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