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))
      
  • 相关阅读:
    Java StringBuffer 和 StringBuilder 类
    Java String 类
    Java Character 类
    windows server R2 搭建ftp服务
    虫师的使用经验
    Linux 使用NC命令监听本地端口
    MYSQL让别人远程访问自己的数据库
    crontab
    tomcat日志切割脚本
    测试分布式部署页面sso
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/12747238.html
Copyright © 2011-2022 走看看