题解 | #整数与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))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务