题解 | 整数与IP地址间的转换

整数与IP地址间的转换

https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

ip = input()
ten_ip = input()

ip_list = ip.split(".")
ip_to_ten = ""

for i in range(4):
    temp = ""  # 用中间变量存储点分十进制各个部分转二进制后的值
    if len(bin(int(ip_list[i]))[2:]) < 8:  # 不足补0
        n = 8 - len(bin(int(ip_list[i]))[2:])
        temp = "0" * n + str(bin(int(ip_list[i])))[2:]
        ip_to_ten += temp
    else:
        temp += str(bin(int(ip_list[i])))[2:]
        ip_to_ten += temp

bin_ten_ip = "0" * (32 - len(str(bin(int(ten_ip)))[2:])) + str(bin(int(ten_ip, 10)))[2:]

ten_ip_to_bin = []
for i in range(0, 32, 8):
    ten_ip_to_bin.append(str(int((bin_ten_ip[i : i + 8]), 2)))

print(int(ip_to_ten, 2))  # 二进制转十进制
print(".".join(ten_ip_to_bin))

全部评论

相关推荐

点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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