题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
while True: try: ip = map(int, input().split(".")) number = int(input()) except: break else: # ip 转换成 整数 num = "" for i in ip: a = bin(i)[2:] if len(a) < 8: a = "0" * (8 - len(a)) + a num += a print(int(num, 2)) # 整数转换成ip num2 = bin(number)[2:] if len(num2) < 32: num2 = "0" * (32 - len(num2)) + num2 ip = [int(num2[8 * i : 8 * i + 8], 2) for i in range(4)] print(".".join(map(str, ip)))
# 开始: (1)解题思路 (2)思路的代码实现方式 # 总结: (1)为什么我的解题思路很傻逼? bin、int我的知识点缺失,bin()可将数字默认转换为以ob开头的二进制。比如:10 > ob1010, 3 > 0b11 int(字符串, base) 可将 字符串转换成整数,如果base=2,那就说明字符串被当成了二进制数。如果是默认的10,这个字符串是啥,就显示啥。 base = 10 ,int("00001010000000000000001111000001", 10)) > 00001010000000000000001111000001 base = 2, int("00001010000000000000001111000001", 2)) > 167773121 (2)为什么我不懂代码实现方式? (3)我为什么去debug了?
#数据仓库与数据分析实习#
OD专栏练习梳理 文章被收录于专栏
OD专栏练习梳理