题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
while True:
try:
ip_fs = list(map(int,input().split(".")))
ip_int = int(input())
except EOFError:
break
else:
#第一个ip段左移24位,第二个ip段左移16位,以此类推,在对四个左移后数进行|操作即可输出
n1,n2,n3,n4 = ip_fs[0]<<24,ip_fs[1]<<16,ip_fs[2]<<8,ip_fs[3]
n = n1|n2|n3|n4
print(n)
#4个ip段循环四次,每个ip段占8位
strn = []
for _ in range(4):
rn = 0
for i in range(8):
#对个ip段,将其进行&1操作获取每位的数字
p = ip_int&1
rn += p*2**i
ip_int = ip_int>>1
strn.append(str(rn))
#strn反转后的每个元素才是对应的ip段对应的整数
strn.reverse()
print('.'.join(strn))
