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}")