题解 | 整数与IP地址间的转换
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import sys for line in sys.stdin: a = line.split("\n")[0] if "." in a: a_s = a .split(".") nums = [] for _ in a_s: temp = bin(int(_))[2:] if len(temp) < 8: temp = '0' * (8-len(temp))+temp nums.append(temp) num_str = "".join(nums) #print(num_str) print(int(num_str,2)) else: s = bin(int(a)).replace("0b","") #print(s) ss = [] for i in range(len(s),-1,-8): temp = s[i-8:i] if temp: ss.append(s[i-8:i]) if len(ss) != 4: temp = s[:-24] if len(temp) < 8: temp = '0' * (8-len(temp))+temp ss.append(temp) #print(ss) res = "" for i in range(3,-1,-1): res+=str(int(ss[i],2))+"." print(res[:-1])
就是每次bin有个0b前缀有点麻烦,还有就是每个数应该是8位需要注意下长度