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

整数与IP地址间的转换

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

def to_ten(ip: str):
    ip_l = ip.split(".")  # 按照'.'分隔ip
    ans_2 = ""
    for i in ip_l:
        i_2 = str(bin(int(i)))[2::].zfill(8)  # 转换成二进制数字符串,去掉前缀0b,并补0到8位
        ans_2 += i_2

    ans = int(ans_2, 2)  # 二进制字符转换成十进制数
    return ans


def to_ip(ip_10: str) -> str:
    ip_2 = str(bin(int(ip_10)))[2::] # 转换成二进制数并去掉前缀0b

    # 根据余数判断是否需要补0
    a = len(ip_2) % 8
    if a != 0:
        ip_2 = '0'* (8-a) + ip_2
    
    ip_l = []
    start = 0
    l = len(ip_2)

    for i in range(l // 8):  # 每八位转换成十进制一次,并添加到列表中
        s = ip_2[i*8: i*8+8]
        ip_l.append(str(int(s, 2)))
        
    ans = '.'.join(ip_l)  # 以'.'连接成ip地址
    return ans


print(to_ten(input()))
print(to_ip(input()))

全部评论

相关推荐

2025-12-19 21:53
门头沟学院 Java
想做OpenGL:不要一来就把自己定位这么低吧,把大厂当成目标,不断去学技术做项目,最后你至少能学到能找到中小厂的技术水平,你一上来就找这种两千块还要前后端都会的,其实对你用处不会很大,真去了也是打杂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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