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

整数与IP地址间的转换

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

用到int和bin函数,在10进制和2进制之间反复转换

def transfer_ip2num(ip):
    ip_list = ip.split('.')
    bin_str = ''
    for x in ip_list:
        bin_str += bin(int(x))[2:].rjust(8,'0')
    return int('0b'+ bin_str, 2)

def transfer_num2ip(num):
    result = ''
    bin_str = bin(int(num))[2:].rjust(32,'0')
    for idx in range(4):
        result = result + str(int('0b' + bin_str[idx*8:idx*8+8], 2)) + '.'
    return result[:-1]

if __name__ == '__main__':
    while True:
        try:
            print(transfer_ip2num(input()))
            print(transfer_num2ip(input()))
        except EOFError: break
        
全部评论
'0b'也可以不加
点赞 回复 分享
发布于 03-02 16:38 上海
点赞 回复 分享
发布于 2023-05-18 18:52 浙江
简洁明了,好代码
点赞 回复 分享
发布于 2022-08-03 14:51

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
36
1
分享

创作者周榜

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