题解 | #字符串加密#

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

while True:
    try:
        ip = input()
        arr1 = ip.split('.')
        if len(arr1) == 4:
            x, y = 0, ''
            for i in range(len(arr1)):
                if arr1[i].isdigit():
                    str1 = bin(int(arr1[i]))
                    # 转换成二级制后开头是ob,二进制表示
                    str1 = str1[2:]
                    if len(str1) < 8:
                        # 除了第一个不足8位不需要补齐,其他的都需要补齐
                        str1 = '0' * (8 - len(str1)) + str1
                    y += str1
                else:
                    x = 1
                    break
            if x == 1:
                continue
            # int(y,2):二进制转换成十进制
            print(int(y, 2))
        else:
            break

        num = int(input())
        str2 = bin(num)[2:]
        # 不足32位的话,开头要补齐0
        if len(str2) < 32:
            str2 = '0' * (32 - len(str2)) + str2
        # 每8位是一个数,转换成10进制保存起来
        arr2 = []
        for i in range(0, len(str2), 8):
            s = str2[i:i + 8]
            n = int(s, 2)
            arr2.append(str(n))
        print('.'.join(arr2))

        break
    except:
        break

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务