题解 | #整数与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,开源和八股。这比你这段时间捣鼓一段小厂实习要好得多;
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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