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

整数与IP地址间的转换

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

这题可以取巧,因为IP地址是8位一组,所以按8位一组切割被转换成2进制的数字即可。当然,像我这样逆着来可以省一步操作。

while 1:
    try:
        a2 = list(map(int,input().split('.')))
        a10 = bin(int(input()))[2:]
        str1 = ''
        list2 = []
        for i in range(4):
            str1 = str1 + '0'*(8-len(bin(a2[i])[2:]))+ bin(a2[i])[2:] 
            if i == 0:
                list2.append(str(int(a10[-8:],2)))
            else:
                list2.append(str(int(a10[(-8-i*8):(0-i*8)], 2)))
        print(int(str1,2))
        print('.'.join(list2[::-1]))
    except:
        break
全部评论

相关推荐

昨天 22:55
已编辑
叮咚买菜
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 10人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
牛客263158796号:我领羊一面后十天不挂也不推进 今天问hr说等前序的第一批意向发完看情况再看是否推进
点赞 评论 收藏
分享
2 4 评论
分享
牛客网
牛客企业服务