题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
这题可以取巧,因为IP地址是8位一组,所以按8位一组切割被转换成2进制的数字即可。当然,像我这样逆着来可以省一步操作。
while 1:
try:
a2 = list(map(int,input().split('.')))
a10 = bin(int(input()))[2:]
str1 = ''
list2 = []
for i in range(4):
str1 = str1 + '0'*(8-len(bin(a2[i])[2:]))+ bin(a2[i])[2:]
if i == 0:
list2.append(str(int(a10[-8:],2)))
else:
list2.append(str(int(a10[(-8-i*8):(0-i*8)], 2)))
print(int(str1,2))
print('.'.join(list2[::-1]))
except:
break