Problem B: IP地址转换:数字与字符串之间转换

116 篇文章 2 订阅
20 篇文章 0 订阅
文章讲述了IP地址的概念,它是互联网上网络和主机的逻辑地址。IP地址通常以点分十进制形式表示,但也可以用32位无符号整数形式存储。给定一个无符号整数,需要编写程序将其转换为点分十进制的IP字符串。示例代码中展示了如何通过整数除法和取余操作完成这种转换。
摘要由CSDN通过智能技术生成

Problem Description

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。 
IP 地址库中 IP 地址的保存格式一般有两种,一种是点分十进制形式(192.168.1.1),另一种是数字形式(3232235777),应用中,经常需要在这两种格式之间做转换。现在请你编程实现把数值转为 ip 字符串。 

 

 Input Description

 输入一个无符号整数(32位)。

 

 Output Description

 

Sample Input

3232235777

 Sample Output

192.168.1.1

 Hint

 我的想法:

 我的代码:



if __name__ == '__main__':
    # 输入一个字符串---将其转为点分二进制
    type_1 = 2 ** 8
    type_2 = 2 ** 16
    type_3 = 2 ** 24
    type_4 = 2 ** 32
    # 读取字符串
    data = int(input())

    port1 = int(data / type_3)
    port2 = int((data - (port1 * type_3)) / type_2)
    port3 = int((data - (port1 * type_3) - (type_2 * port2)) / type_1)
    port4 = int((data - (port1 * type_3) - (type_2 * port2) - (type_1 * port3)))
    print(f"{port1}.{port2}.{port3}.{port4}")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小木苓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值