题解 | #整数与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专栏练习梳理

全部评论

相关推荐

点赞 评论 收藏
分享
2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客企业服务