题解 | #整数与IP地址间的转换# 屎山代码,能跑就行
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
# 输入
ip_input = list(input().split("."))
nums_input = int(input())
# 用于存储二进制的ip地址
ip_str = ""
# 补零并存储
for i in range(0,len(ip_input)):
zero1 = "0" * 8
m = bin(int(ip_input[i]))
m = m[2::]
if len(m) < 8:
m = zero1[0:8-len(m):] + m
ip_str = ip_str + m
# IP地址化十进制并输出
ans1 = int(ip_str, 2)
print(ans1)
# IP地址化为十进制
bin_nums = str(bin(nums_input))
bin_nums = bin_nums[2::]
# 补零
zero2 = "0" * 32
if len(bin_nums) < 32:
bin_nums = zero2[0:32-len(bin_nums):] + bin_nums
# 分段
ip_1 = int(bin_nums[0:8:],2)
ip_2 = int(bin_nums[8:16:],2)
ip_3 = int(bin_nums[16:24:],2)
ip_4 = int(bin_nums[24:32:],2)
# 十进制化为IP地址的输出
print('{0}.{1}.{2}.{3}'.format(ip_1,ip_2,ip_3,ip_4))
