将前导0添加到值,直到长度为8个字符

时间:2016-03-03 20:52:46

标签: python recursion binary

对于作业,我们被要求创建一个采用二进制输入的函数,将该值递增1,然后显示新数字的二进制值。输出值必须是8位字符串(长度为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'

1 个答案:

答案 0 :(得分:1)

计算您需要的零数。然后将它们添加到carSocket = CarServerSocket.accept(); while (true) { System.out.println("Server Connected"); carServerIR = new ObjectInputStream(carSocket.getInputStream()); Car alpha1 = (Car) carServerIR.readObject(); System.out.println("Object received from car clinet: " + alpha1.getCarBrad() + " " + alpha1.getCarModel() + " " + alpha1.getCarYear()); }

value

您还可以使用value = '01' needed = 8 - len(value) value = '0' * needed + value

zfill()