原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个长整数。
举例:一个ip地址为10.0.3.193
每段数字             相对应的二进制数
10                   00001010
0                    00000000
3                    00000011
193                  11000001
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。
数据范围:保证输入的是合法的 IP 序列
输入描述:
输入 
1 输入IP地址
2 输入10进制型的IP地址
输出描述:
输出
1 输出转换成10进制的IP地址
2 输出转换后的IP地址
示例1
输入:
10.0.3.193
167969729
输出:
167773121
10.3.3.193
def binConv(instr):
    ins = instr
    newlis = []

    if '.' in ins:
        lis = ins.split('.')
        # print(lis)
        # ['10', '0', '3', '193']
        lis = list(map(int,lis))
        lis = list(map(bin,lis))
        # print(lis)
        # ['0b1010', '0b0', '0b11', '0b11000001']
        for i in lis:
            if len(i[2:]) != 8:
                others = 8 - len(i[2:])
                newlis.append(others*'0' + i[2:])
            if len(i[2:]) == 8:
                newlis.append(i[2:])
                
        # print(newlis)  
        # ['00001010', '00000000', '00000011', '11000001']
        newlis = ''.join(newlis)
        # 00001010 00000000 00000011 11000001
        newlis = int(newlis,2)
        print(newlis)
        
    if '.' not in ins:
        temp = bin(int(ins))
        # print('temp: ',temp)
        # temp:  0b1010000000110000001111000001
        # 658654280
        # temp:  0b11100110100101101101000010011111
        # 57.165.180.39
        if len(temp[2:]) != 32:
            others = '0'*(32-len(temp[2:]))
            temp = others + temp[2:]
            # print(temp)
            # 00001010 00000011 00000011 11000001
            newlis = [int(temp[0:8],2),int(temp[8:16],2),int(temp[16:24],2),int(temp[24:32],2)]
            # print(newlis)
            # [10, 3, 3, 193]
            print('.'.join(map(str,newlis)))
            # 10.3.3.193
        if len(temp[2:]) == 32:
            temp = temp[2:]
            # 658654280
            # 230.150.208.159
            # 658654280
            # 57.165.180.39 错误,需要截取除去第12位的0b
            newlis = [int(temp[0:8],2),int(temp[8:16],2),int(temp[16:24],2),int(temp[24:32],2)]
            # print('32: ',newlis)
            # 32:  [57, 165, 180, 39]
            print('.'.join(map(str,newlis)))
            # 230.150.208.159

for i in range(2):
    instr = input().strip()
    # print(instr)
    # 10.0.3.193
    # 167969729
    binConv(instr=instr)