题解 | #整数与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) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 10:39
一个证都没 我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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