题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
def binary(ip:str):
iplist = ip.split('.')
templist = []
temp = ''
for i in iplist:
ten = int(i)
bi = bin(ten)[2:]
lenbi = len(bi)
temp = '0'*(8-len(bi)) + bi
templist.append(temp)
s = templist[0]+templist[1]+templist[2]+templist[3]
result = int(s,2)
return result
def tenth(ip:str):
bi = bin(int(ip))[2:]
if len(bi) < 32:
zeros = 8 -(len(bi) % 8)
bi = '0'*zeros + bi
elif len(bi) < 24:
zeros = 8 + 8 -(len(bi) % 8)
bi = '0'*zeros + bi
elif len(bi) < 16:
zeros = 16 + 8 -(len(bi) % 8)
bi = '0'*zeros + bi
elif len(bi) < 8:
zeros = 24 + 8 -(len(bi) % 8)
bi = '0'*zeros + bi
else:
pass
iplist = []
iplist.append(str(int(bi[0:8],2)))
iplist.append(str(int(bi[8:16],2)))
iplist.append(str(int(bi[16:24],2)))
iplist.append(str(int(bi[24:],2)))
result ='.'.join(iplist)
return result
a = input()
b = input()
print(binary(a))
print(tenth(b))暴力解题
查看9道真题和解析