华为机考入门python3--(33)牛客33-整数与IP地址间的转换

分类:进制转换

知识点:

  1. 十进制转8位二进制    format(num, '08b')

  2. 二进制转十进制   int(binary_str, 2)

  3. 列表中元素类型转换    new_list = map(int, old_list)

题目来自【牛客】

图片

# 将IP地址转换为十进制形式的整数
def ip_to_int(ip):
    # map返回的是迭代器
    segments = map(int, ip.split('.'))  # 将IP地址字符串以'.'分割,并转换为整数
    # <map object at 0x7f0ad1bc8f40>
    # print(segments)

    # 将每一段转换为8位的二进制串,并拼接起来
    binary_str = ''.join(format(seg, '08b') for seg in segments)
    # 将二进制串转换为整数
    decimal_int = int(binary_str, 2)  
    return decimal_int

# 将十进制形式的IP地址转换回标准的点分十进制形式
def int_to_ip(decimal):
    # 将整数转换为32位的二进制串
    binary_str = format(decimal, '032b')  
    segments = [int(binary_str[i:i+8], 2) for i in range(0, 32, 8)]  # 将二进制串每8位分割转换回整数
    ip = '.'.join(map(str, segments))  # 用'.'连接每个整数以构造IP地址字符串
    return ip

# 输入
ip_addr = input()

# 转换IP地址并输出结果
decimal_ip = ip_to_int(ip_addr)
print(decimal_ip)

decimal_ip_addr = int(input())
ip_addr = int_to_ip(decimal_ip_addr)
print(ip_addr)

by 软件工程小施同学 

 

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 00:42:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 00:42:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 00:42:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 00:42:03       20 阅读

热门阅读

  1. excel 转换MAC地址格式方法

    2024-06-07 00:42:03       9 阅读
  2. 求二叉树第k层结点的个数--c++【做题记录】

    2024-06-07 00:42:03       10 阅读
  3. npm:Node.js包管理器的使用指南

    2024-06-07 00:42:03       7 阅读
  4. 【机器学习】之 kmean算法原理及实现

    2024-06-07 00:42:03       10 阅读
  5. DVWA-CSRF

    DVWA-CSRF

    2024-06-07 00:42:03      8 阅读
  6. 算法学习笔记——对数器

    2024-06-07 00:42:03       8 阅读
  7. 递推7-2 sdut-C语言实验-养兔子分数

    2024-06-07 00:42:03       5 阅读