zoukankan      html  css  js  c++  java
  • 数据类型转换(计算mac地址)

    [root@localhost test1]# vim 19.py
    //add
    #!/usr/bin/python
    
    macaddr = '00:0C:29:D1:6F:E9'
    prefix_mac = macaddr[:-3]
    last_two = macaddr[-2:]
    plus_one = int(last_two, 16) + 1
    new_last_two = hex(plus_one)[2:]
    new_mac = prefix_mac + ':' + new_last_two
    print new_mac.upper()
    
    /* 
        prefix_mac -- 定义mac地址的前缀,要保持前五位不变 [:-3] --从开头取到倒数第三位(冒号也算一位)
    
        last_two -- 先取最后的两位 ,[-2:]  从倒数第二位一直取到最后
    
        因为mac地址为16进制,要将其转换为10进制 --plus_one 然后要加1 --得到新的
    
        然后再把这个新的 16进制 转换为 10进制 -- 有时会打印0x(则表示16进制)
                     -- new_last_two -- [2:]从第三个取到最后
    
        new_mac --新的地址 ,就是把前缀加上最后计算的两位,利用冒号来连接
    
        upper() -- 此函数可把 小写字母 变成 大写字母 
    
    */
    
    [root@localhost test1]# python 19.py
    00:0C:29:D1:6F:EA
        
    
    /* 上面的只是针对某个mac地址写的脚本
     
        当有什么不一样的地方,可以先通过进入python状态进行测试,
    
        找到了好的解决方法,再写入脚本中进行显示
    
    */
    
    /* 
        如果 最尾两位为01 ,当转换后 0不会显示, 会显示 1.
    
        解决方法:
    */
    
    [root@localhost test1]# vim 19.py
    //add
    #!/usr/bin/python
    
    macaddr = '00:0C:29:D1:6F:01'
    prefix_mac = macaddr[:-3]
    last_two = macaddr[-2:]
    plus_one = int(last_two, 16) + 1
    if plus_one in range(10):
        new_last_two = hex(plus_one)[2:]
        new_last_two = '0' + new_last_two
    else:
        new_last_two = hex(plus_one)[2:]
    new_mac = prefix_mac + ':' + new_last_two
    print new_mac.upper()
    
    /* 如果最后两位为 0A,则下一个应该为B0,但是0又没办法取到
    
        解决方法:
    
    */
    
    [root@localhost test1]# vim 19.py
    //add
    #!/usr/bin/python
    
    macaddr = '00:0C:29:D1:6F:0A'
    prefix_mac = macaddr[:-3]
    last_two = macaddr[-2:]
    plus_one = int(last_two, 16) + 1
    if plus_one in range(10):
        new_last_two = hex(plus_one)[2:]
        new_last_two = '0' + new_last_two
    else:
        new_last_two = hex(plus_one)[2:]
            if len(new_last_two) == 1:
                new_last_two = '0' + new_last_two
    new_mac = prefix_mac + ':' + new_last_two
    print new_mac.upper()
    
  • 相关阅读:
    WeChat-SmallProgram:组件 scroll-view 横向和纵向 案例
    Codeforces Round #277 (Div. 2) D. Valid Sets 树形DP
    Codeforces Round #243 (Div. 2) E. Sereja and Two Sequences DP
    Codeforces Round #263 (Div. 2) D. Appleman and Tree 树形dp
    Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest 状压DP
    Codeforces Round #274 (Div. 2) E. Riding in a Lift DP
    HDOJ 6069 素数筛
    在平面中,一个点绕任意点旋转θ度后的点的坐标
    HDOJ 5724 博弈SG函数
    Codeforces Round #422 (Div. 2) C. Hacker, pack your bags! 排序+贪心
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/5843373.html
Copyright © 2011-2022 走看看