HJ33 题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
#简单模拟
#ip转数字
def encode(s):
a=s.split(".")#得到4个数字
b=""#存储2进制数字
for i in a:
c=bin(int(i))[2:]#转2进制之后去掉前缀
b+="0"*(8-len(c))+c#位数不够8位的补0
return int(b,2)
#数字转ip
def decode(s):
a=bin(int(s))[2:]#转为2进制数字
a="0"*(32-len(a))+a#补全0
b=[]
for i in range(0,len(a),8):
b.append(a[i:i+8])#8位一组存进b
for i in range(len(b)):
b[i]=str(int(b[i],2))#转为数字
c=".".join(b)
return c
s1=input()
s2=input()
print(encode(s1))
print(decode(s2))
#华为##华为od##华为od机试##华为机试#华为HJ103所有解法 文章被收录于专栏
这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~
