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

十进制转二进制:bin(int(i))[2:].zfill(8)
1.将整数转换为二进制表示,使用bin()函数。例如,bin(10)将返回字符串'0b1010',其中'0b'表示二进制的前缀。
2. 使用切片操作[2:],去除二进制字符串中的前缀'0b',只保留二进制数值部分。 3. 使用zfill(8)函数,将二进制字符串填充到8位,如果不足8位则在左侧填充0。
二进制转十进制:int('二进制数字',2)

ip = input()
intip = input()

def trans_ip_int(ip, type):
    if type == 1:
        binary = ''
        ip = ip.split('.')
        for i in ip:
            binary += bin(int(i))[2:].zfill(8)
        return int(binary, 2)
    if type == 2:
        binary = bin(int(ip))[2:].zfill(32)
        ip = []
        for i in range(0, 32, 8):
            ip.append(str(int(binary[i:i+8], 2)))
        return '.'.join(ip)
print(trans_ip_int(ip, 1))
print(trans_ip_int(intip, 2))
全部评论

相关推荐

01-07 07:54
已编辑
门头沟学院 前端工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务