牛客_华为_ HJ33 整数与IP地址间的转换

HJ33 整数与IP地址间的转换
在这里插入图片描述

基本就是使用一下 bin()   int()
了解一下 
str.rjust(n,'0')#len(str)<n 左边填充0
str.ljust(n,'0')#len(str)<n 右边填充0

>>> "wdnasf".rjust(10,"0")
'0000wdnasf'
>>> "wdnasf".ljust(10,"0")
'wdnasf0000'
ip = input()
num = input()

def ip2num(ip):
    s = ''
    ip_lst = ip.split(".")
    for num in ip_lst:
        n = bin(int(num,10))[2:]## 0b000 这是二进制字符串 [2:]
        n = '0'*(8-len(n))+n if len(n)<8 else n
        s += n
    
    return int(s,2)

def num2ip(num):
    rec =[]
    num = bin(int(num,10))[2:]
    num = '0'*(32-len(num))+num if len(num)<32 else num
    for i in range(0,len(num),8):
        rec.append(str(int(num[i:i+8],2)))
    
    return '.'.join(rec)

print(ip2num(ip))
print(num2ip(num))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值