对于作业,我们被要求创建一个采用二进制输入的函数,将该值递增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'
答案 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()