整数和ip地址的转化,要注意其他进制转化为2进制时有2个字符的前缀
题目描述
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。
举例:一个ip地址为10.0.3.193
每段数字 相对应的二进制数
10 00001010
0 00000000
3 00000011
193 11000001
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。
数据范围:保证输入的是合法的 IP 序列
输入描述:
输入
1 输入IP地址
2 输入10进制型的IP地址
代码和思路
while True:
try:
ip = input()
num = input()
except:
break
else:
"""
如果输入的是一个ip地址,首先将字符串以.为分隔符分开,再对每一块进行
二进制转换,十进制或者其他进制转二进制时,前面会加上两个字符的前缀
所以需要切片,然后对二进制数补0,将字符串拼起来,然后转化为10进制
"""
list1 = ip.split('.')
target =str()
for i in list1:
a = bin(int(i, 10))[2:]
if len(a)
输出描述:
输出
1 输出转换成10进制的IP地址
2 输出转换后的IP地址
Original: https://www.cnblogs.com/yzysimpletest/p/16356224.html
Author: 最大的敌人是自律
Title: HJ33 整数与IP地址间的转换
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/603277/
转载文章受原作者版权保护。转载请注明原作者出处!