zoukankan      html  css  js  c++  java
  • 练习题-如何将IP地址转换成为一个整数以及十进制及其他进制之间的转化

    1、XX转化为10进制int(x,2)-bin,oct,hex

    """
    9、通过代码实现如下转换:
    二进制转换成十进制:v = “0b1111011”
    十进制转换成二进制:v = 18
    八进制转换成十进制:v = “011”
    十进制转换成八进制:v = 30
    十六进制转换成十进制:v = “0x12”
    十进制转换成十六进制:v = 87
    """
    
    a = int("0b1111011", 2)
    b = bin(18)
    
    # 八进制转换成十进制:v = “011”
    # 十进制转换成八进制:v = 30
    c = int("011", 8)
    d = oct(30)
    
    # 十六进制转换成十进制:v = “0x12”
    # 十进制转换成十六进制:v = 87
    e = int("0x12", 16)
    f = hex(87)

    2、如何将IP地址转换成为一个整数

    请编写一个函数实现将IP地址转换成一个整数。
    
    如 10.3.9.12 转换规则为: ---分割 split
    
     10           00001010
     3            00000011
     9            00001001
     12           00001100 -- 位移或者补齐 str.rjust(width[, fillchar])
    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ? --  int 将2进制转为十进制  int(x,2)
    """
    10、请编写一个函数实现将IP地址转换成一个整数。
    
    如 10.3.9.12 转换规则为:
    
     10           00001010
     3            00000011
     9            00001001
     12           00001100
    
    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
    
    """
    
    
    #  rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
    # str.rjust(width[, fillchar])
    # width -- 指定填充指定字符后中字符串的总长度.
    # fillchar -- 填充的字符,默认为空格
    # 语法
    def ipfunc(ip):
        a = ip.split('.')
        s = ''
        l = []
        for i in a:
            i = bin(int(i))[2:]
            i = i.rjust(8, '0')
            l.append(i)
        s = s.join(l)
        return s
    
    
    # 通过位移的方式
    def v1(addr):
        # 取每个数
        id = [int(x) for x in addr.split(".")]
        print(id)
        sum = 0
        for i in range(4):
            c = (id[i] << [24, 16, 8, 0][i])
            sum += c
        # return sum(id[i] << [24, 16, 8, 0][i] for i in range(4))
        return sum
    
    
    if __name__ == '__main__':
        c = v1("10.21.21.21")
        d = ipfunc("10.21.21.21")
        print(c)
        print(int(d, 2))
      
  • 相关阅读:
    用记事本编写一个Servlet项目
    Servlet开发(一)
    41、java与mysql乱码的问题
    40、JDBC相关概念介绍
    mysql-5.7.12-winx64安装版配置、使用
    39、集合线程安全问题
    38、各Set实现类的性能分析
    电脑取随机数是什么原理,是真正的随机数吗?转自知乎.
    创建Car类,实例化并调用Car类计算运输的原料量是否足够
    用Random类输出验证码
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/12747238.html
Copyright © 2011-2022 走看看