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

整数与IP地址间的转换

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

while True:
    try:
        a = input()
        a = a.split('.')
        if(len(a) == 1):若输入的是需要还原的
            b = '{:32b}'.format(int(a[0])) #转化为32位二进制
            b = list(b)
            for i in range(len(b)): #不知道为啥他前面不会补齐。。手动补齐32位,转化为8位4位就没这种情况
            有大佬知道为啥不
                if(b[i] == ' '):
                    b[i] = '0'
            b = ''.join(b)
            b_1 = '0b' + b[:8] #截取四部分
            b_2 = '0b' + b[8:16]
            b_3 = '0b' + b[16:24]
            b_4 = '0b' + b[24:]
            c = []
            c.append(str(int(b_1,2))) #分别转为十进制
            c.append(str(int(b_2,2)))
            c.append(str(int(b_3,2)))
            c.append(str(int(b_4,2)))
            print('.'.join(c)) #十进制之间用.相连
        else: #若为IP地址
            e = []
            for i in a:
                d = int(i)
                d = '{:08b}'.format(d) #转化为8位二进制
                e.append(d)
            d = ''.join(e)
            print(int(d,2))最后转化为十进制
    except:
        break
华为机试题解(prod.by kedao) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗? 那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 14:35
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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