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

整数与IP地址间的转换

http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

##一、 输入IP地址,输出转换成10进制的IP地址
i1=list(map(int,input().split('.')))# int()不能直接以字符串列表为目标
n1=''
for k in i1:# 遍历IP地址每个部分
    n1=n1+'0'*(8-len(str(bin(k))[2:]))+str(bin(k))[2:]# 把IP地址每个部分便二进制后补0后变字符串相加
out1=int(n1,2)

##二、输入10进制型的IP地址,输出转换后的IP地址
i2=int(input())
if len(str(bin(i2))[2:])==32:
    n2=str(bin(i2))[2:]
else:
    n2='0'*(8-len(str(bin(i2))[2:])%8)+str(bin(i2))[2:]# 首段补0成8的倍数,方便后面分组
w=len(n2)//8# 看该二进制长串可以分几份,其实就是4,因为ipv4就是4份= =|||
tem=[]# 用于存放ipv4中每部分的数字,最后用'.'连接起来
for j in range(w):
    tem.append(int(n2[j*8:(j+1)*8],2))# 把每份二进制子串用int(,2)转换成十进制存入tem列表
out2='.'.join(map(str,tem))

print(out1)
print(out2)

【牛客站内】华为机试题练习记录

全部评论

相关推荐

06-19 14:58
门头沟学院 Java
点赞 评论 收藏
分享
简历求拷打,海投简历发过去就已读不回了求大佬们指点
程序员牛肉:基本不能了,估计你得放弃秋招,九月份找实习之后明年的春招开始正式找工作
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
一表renzha:你点进去没打招呼他也会有提示的,之前我点进美的,还没打招呼,他马上给我发了不太合适哦
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务