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

整数与IP地址间的转换

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

n1 = input()   # ip地址
n2 = int(input())   # 整数


# 10进制转二级制,仅限8位数,返回字符串
def int_bin_1(n):
    b = ""
    for i in range(7,-1,-1):
        if n >= 2**i:
            n -= 2**i
            b += "1"
        else:
            b += "0"
    return b


# 10进制转二进制,仅限32位数,返回字符串
def int_bin_2(n):
    b = ""
    for i in range(31,-1,-1):
        if n >= 2**i:
            n -= 2**i
            b += "1"
        else:
            b += "0"
    return b

# 二进制转10进制,不限位数
def bin_int(s):
    n = 0
    a = len(s)-1
    for i in s:
        n += int(i) * (2**a)
        a -= 1
    return n



# 1. IP转整数
n1_list = n1.split(".")

b1 = ""
for i in n1_list:
    num = int(i)
    b1 += int_bin_1(num)

print(bin_int(b1))


# 2. 整数转IP
s = int_bin_2(n2)
s1 = bin_int(str(s[0:8]))
s2 = bin_int(str(s[8:16]))
s3 = bin_int(str(s[16:24]))
s4 = bin_int(str(s[24:32]))

print(f"{s1}.{s2}.{s3}.{s4}")

全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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